gpt4 book ai didi

node.js - 使用express和sockjs进行用户身份验证

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

在 sockjs github 页面上写的 - cookie 不能用于用户身份验证。在哪里我可以阅读有关在 sockjs 中验证用户身份的方法,最好有示例。我不想使用 socket.io。

最佳答案

您可以将基于 token 的方法与 redis 和 sockjs 结合使用。在较高的层面上,该过程可以像这样工作:

  1. 客户端首先通过常规 HTTP 请求从服务器请求 token (实现为 uuid)。这会通过express的中间件路由请求,并可以轻松访问cookie和所有 session 数据。
  2. 生成 token 后,它会作为键值对存储在 Redis 中,其中 token 是键, session 数据是值。
  3. 然后, token 会传回用户,sockjs 客户端在发出初始连接“升级”请求时将其作为 GET 参数附加到 URL。
  4. 当sockjs服务器收到授权请求而不是验证cookie时,它会解析url,弹出 token ,并尝试在redis中查询由 token 键入的键值对。如果redis查询失败或返回空数据,则您拒绝授权请求。如果redis请求成功,那么您就拥有对所有 session 数据的完全访问权限,现在您可以删除redis中的键值对。

这里可能存在的问题是您需要在每个连接请求上请求一个新 token 。否则它会尝试使用相同的 token 。如果在验证 token 后删除 token ,这将阻止套接字重新连接。根据您的应用程序,这可能是所需的行为。这是给我们的,所以我们保持原样,但它仍然是值得了解的东西。

关于node.js - 使用express和sockjs进行用户身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22489730/

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