【发布时间】:2021-09-17 06:50:41
【问题描述】:
我已经在节点中开发了一个简单的带有 jwt 身份验证的 bakend 服务器,但我仍然有一个问题:在用户正确登录并将令牌保存在客户端之后,服务器是否应该在每个用户请求时验证令牌?例如,当访问/profile 路由(将用户带到个人资料页面)时,或者当用户通过向/posts/create 路由发送帖子请求来创建问题时,我应该使用jwt.verify(...) 方法来检查是否令牌每次都正确吗?发送 jwt 访问令牌而不是刷新令牌是否也正确,或者这是一种不好的做法?
【问题讨论】:
-
您的问题应该集中在一个问题上,以便得到妥善解决。您必须为每次调用验证令牌,任何人都可以向您的 API 发出请求,而无需通过您的登录页面
-
是的,每次都验证! 发送 jwt 访问令牌而不是刷新令牌是否也正确,或者这是一种不好的做法? - 你的意思是什么?
-
@AndreaDattero 这就是我们期望在 Stack Overflow 上提出问题的方式,您应该创建单独的问题,以便他们可以有单独的具体答案。 StackOverflow 确实希望帮助您回答您的问题,但我们希望答案对其他人有用,而不仅仅是您stackoverflow.com/help/how-to-ask
-
@AndreaDattero 感谢您的链接。 即使用户不再登录到授权服务器,您也可以使用刷新令牌来获取新的访问和 ID 令牌。通过使用刷新令牌,您无需在用户启动应用程序时重新进行身份验证。相反,如果有任何可用的刷新令牌,您可以使用它以静默方式获取新的访问令牌。 - 我还没有阅读完整的文章,只是瞥了一眼并查看了有关刷新令牌的内容。到目前为止,没有什么令人惊讶的。使用访问令牌访问受保护的资源,使用刷新令牌更新访问令牌。
-
从中我看不到刷新令牌的使用方式/位置而不是访问令牌。两种代币都有其作用/目的,反映在它们的名称中。并且访问令牌不用于身份验证,而是用于授权。您在通过身份验证后获得访问令牌,然后获得访问资源的授权。
标签: javascript node.js express authentication jwt