【问题标题】:Socket.io authentication with JWT使用 JWT 进行 Socket.io 身份验证
【发布时间】:2018-08-03 13:43:54
【问题描述】:

最近我开始在工作中学习socket.io,并了解了发出事件和监听事件的一般概念。目前我正在使用 Node.js、Express 和 Socket.io 构建一个简单的聊天应用程序,我想为我的应用程序添加身份验证,以便在页面刷新时保存数据并保留连接。

我阅读了很多关于基于令牌的身份验证与基于 cookie 的身份验证的信息,我明白在大多数情况下,最好使用基于令牌的身份验证策略。

我发现很多关于这个主题的 npm 包可以帮助验证请求,但是我找不到一种简单的实现简单验证的方法。

我的问题是:使用套接字实现身份验证的最佳/正确方法是什么?

如果你们能帮我解决这个问题,我将不胜感激。

【问题讨论】:

  • 您的“问题”中没有一个问题。你能清楚地说明你想知道什么吗?或许可以解释或展示一些代码来说明你有多远以及你在哪里卡住了?
  • 我过去使用过 Express JWT github.com/auth0/express-jwt,它做得很好。
  • @Zlatko 我的问题是使用套接字实现身份验证的最佳/正确方法是什么?
  • @t3__rry 如何将此包与 Socket.io 一起使用?
  • @DavidLasry 我提供的是 Express。看看这个线程stackoverflow.com/questions/36788831/… 和这个包:github.com/auth0-community/socketio-jwt

标签: node.js socket.io jwt


【解决方案1】:

当客户端连接到服务器时,要求使用令牌向服务器发送“身份验证”事件,如果用户在 5 秒内没有发送此事件,则断开连接,如果令牌无效然后断开它们,仅当它们具有有效的访问令牌时才允许它们保持连接。

还要确保他们每次向服务器发出请求并验证它时都发送此令牌,这不是 100% 必要的,因为如果没有有效令牌,他们一开始就无法连接,但它不会受伤了。

【讨论】:

  • 感谢您的回复。你能告诉我如何将令牌保存在我的客户端和服务器上吗?我知道我可以将它保存为 cookie,但我不完全了解它是如何工作的,我可以实现它。
  • 您应该查看 JWT 令牌。
猜你喜欢
  • 2019-05-23
  • 2016-04-07
  • 2023-03-27
  • 2021-05-29
  • 2017-07-30
  • 2018-06-30
  • 2021-02-06
  • 2022-12-03
  • 2013-11-02
相关资源
最近更新 更多