gpt4 book ai didi

node.js - Passport.js 没有 cookie 的 session 管理

转载 作者:太空宇宙 更新时间:2023-11-03 23:08:34 25 4
gpt4 key购买 nike

我对 Node 世界还很陌生。我已经四处寻找了几天,但我找不到使用现有的 npm“官方”解决方案来做到这一点的方法。如果有歉意,我希望能更好地找到合适的 Node 资源。

我按照互联网上提供的各种示例实现了工作 Passport 本地政策。效果很好

我现在想要实现 session 管理,特别是我不想使用 cookie,而是使用 GET/POST 参数。其背后的原因是,我正在为一个 API 服务构建此服务,该服务可能必须与不存在 cookie/ header 的自定义协议(protocol)(HTTP 除外)配合使用。

我看到所有 session 都支持使用 Passport 实现,并且它们似乎都依赖于express/connect session 包,而该包似乎只支持 cookie,并且无法读取/写入 POST/GET 参数中的 session key 。

在我推出自己的定制解决方案之前,您能否向我指出任何已经可用的内容(如果存在)?

最佳答案

所以你可以这样做。

passport.js 使用 npm express-session 中间件来构建实际的 session 基础设施。

由于express支持管道任意中间件,我设法使用以下解决方法:

  1. 在 Express 设置中,在 Express session 中间件之前添加一个中间件函数。

  2. 在中间件函数中,检查请求中是否存在 session token /id(作为 header 或根据需要存在于正文中),如果存在,则从中读取 session token /id。

  3. 将 session token /id 设置到 request.cookies 对象上(如果您使用 cookie 解析器)和/或附加到 header 中的序列化 cookie:request.headers.cookie += ...my新的 cookie 放在这里...

  4. 确保您以传递给 Express-Session 的名称命名 Cookie

express-session 现在应该能够从复苏请求中获取它。

关于node.js - Passport.js 没有 cookie 的 session 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25771217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com