我目前使用json Web令牌对服务器上的用户进行身份验证。现在我希望用户在任何给定的时间只能有一个活动登录。正如this这样的其他一些关于stackoverflow的答案中提到的,这可以通过存储在数据库表中生成的json web令牌轻松完成,并且每次用户登录到服务器时都会更新此令牌。无论何时验证用户,我所要做的就是检查数据库中的令牌。我正在考虑另一种方法。由于我使用json Web令牌,我可以为不同的用户使用不同的秘密,并将它们存储在数据库中,而不是存储整个令牌。每当用户登录时,这些秘密都会被更新。因此,在任何时候只有一个秘密,并且因为只有一个令牌可以为任何秘密解码(在这种情况下当然是),所以只有一个登录将被激活。我想知道这两种方法哪一种更好。对于不同的用户可以拥有不同的秘密吗?只允许在nodejs中使用json web令牌一次登录
1
A
回答
0
你不需要在数据库中存储JWT来做到这一点。只需在登录时向JWT注入一个唯一的基于时间的值(UUID或用户登录时间戳),并将该值保存在数据库中,并与用户对照。无论何时验证用户,请检查该值与数据库中的值是否相等。如果它们匹配,这意味着帐户尚未从任何其他设备记录,则可以继续。如果他们不这样做,请向用户发送适当的错误消息。
相关问题
- 1. 只允许在NodeJS中一次从一台设备登录
- 2. 登录 - 只允许3次尝试
- 3. 登录只允许3 attemts
- 4. 只允许一次
- 5. 使用sha256登录令牌
- 6. 获取访问令牌但不允许登录
- 7. 只允许点击一次
- 8. 春季安全只允许oauth登录
- 9. 我应该允许多次登录吗?
- 10. OAuth - 无效令牌:不允许使用请求令牌
- 11. 允许在登录时仅登录一个用户
- 12. 使用omniauth进行facebook登录,只使用访问令牌
- 13. 只允许用户使用Google登录是否不好?
- 14. 只允许特定用户使用everyauth登录
- 15. ASP.NET MVC只允许一个登录用户
- 16. SAPUI5和登录令牌/ SSO?
- 17. 一次只允许一个会话
- 18. 一次只允许有一个UITableViewCellAccessoryCheckmark
- 19. 用令牌登录php curl
- 20. JSON登录Google Cloud使用Winston在nodeJS中记录
- 21. 安全地使用Json Web令牌
- 22. 使用Json Web令牌的Node-Restful
- 23. FOSUserBundle只能登录一次
- 24. Android只允许在屏幕上一次使用
- 25. 使用JWT(JSON Web令牌)设置令牌的RESTful API过期
- 26. 使用硬件令牌登录
- 27. 解析MYSAPSSO2使用.NET登录令牌
- 28. 如何使登录用户只在帖子上只有一次?
- 29. Web Api只允许提交表单一次
- 30. 只允许某个UIGestureRecognizer一次执行