我有一个关于登录“记住我”、JWT 和所有相关内容的逻辑问题

Posted

技术标签:

【中文标题】我有一个关于登录“记住我”、JWT 和所有相关内容的逻辑问题【英文标题】:I have a logic question regarding login "Remember me", JWT, and everything related 【发布时间】:2020-04-27 09:35:58 【问题描述】:

这是一个 SQL、Express/Node 和 ReactJS 堆栈。 我正在使用 JsonWebToken。

似乎其他人已经设置了他们的登录表单 - 如果用户登录,并且他们选中了“记住我”复选框,他们会将 JWT(令牌)存储在浏览器的“localStorage”中。 然后他们每次发出请求时都会检索 localStorage 并将其放入授权标头中。

这里的逻辑问题是,当用户离开我的网络应用程序时......然后稍后返回。安装组件时是否使用 localStorage.get('jwtToken') 执行检查? 如果它存在,尝试 JWT 登录(而不是用户名+密码登录)并在节点服务器上打开令牌以获取用户的 ID?如果用户的ID存在,从数据库中取出他们的信息并返回给浏览器?

听起来对吗? 只是感觉有点奇怪或脆弱。

【问题讨论】:

令牌是用秘密签名的,它将检查它是否对发送到服务器的每个请求都有效,所以是的,它是安全的。 【参考方案1】:

您可以尝试使用 JWT 并获取用户数据,如果令牌过期,您可以将用户重定向到登录页面。

【讨论】:

以上是关于我有一个关于登录“记住我”、JWT 和所有相关内容的逻辑问题的主要内容,如果未能解决你的问题,请参考以下文章

护照验证 jwt 没有响应

玩转 SpringBoot 2 之整合 JWT 下篇

JSON Web 令牌过期和记住我功能

OpenId + 记住我/保持登录状态

如何使用 DRF JWT 实现记住我的功能?

Symfony 4 Restful API 使用 JWT 和 facebook 登录