令牌身份验证是不是使会话变得不必要?

Posted

技术标签:

【中文标题】令牌身份验证是不是使会话变得不必要?【英文标题】:Does token auth make sessions unnecessary?令牌身份验证是否使会话变得不必要? 【发布时间】:2019-02-04 19:56:49 【问题描述】:

我的问题可能会在这里得到回答,Are sessions needed for python-social-auth,但我觉得我在做假设,并希望对我的理解持肯定态度(注意:我没有使用 django,我使用的是 mongo express反应节点,我猜 django 可能带有内置的会话或其他东西)。我按照本指南https://medium.com/hyphe/token-based-authentication-in-node-6e8731bfd7f2 将令牌身份验证和用户登录添加到我的 CRUD Web 应用程序,效果很好,用户身份验证正确,路线受到保护。然而,无论我在哪里读到关于会话和会话管理的基础知识,都指出“世界上每个维护用户数据的 Web 应用程序都必须处理会话”(来源:https://nodewebapps.com/2017/06/18/how-do-nodejs-sessions-work/)。目前,我的反应客户端使用 setInterval 定期检查访问令牌是否会很快过期以通过刷新令牌接收新令牌。我的应用程序是否需要实施会话?如果是这样,他们补充说我缺少什么?

【问题讨论】:

【参考方案1】:

这取决于应用程序的类型。

如果使用令牌访问的资源不是用户特定的,那么会话就没有用处。

但是,在资源对不同用户而言是唯一的情况下(例如,必须登录等),明智的做法是同时实现会话和访问令牌。

请记住,令牌也可以保存在会话中。签出“express-session”以在 expressjs 中实现会话。

【讨论】:

以上是关于令牌身份验证是不是使会话变得不必要?的主要内容,如果未能解决你的问题,请参考以下文章

通过令牌进行身份验证,如果令牌失败,则通过会话进行身份验证,使用 Passport?

Laravel - 使用会话令牌进行身份验证

基本身份验证是基于令牌的身份验证吗?

混合身份验证 - 基于 Spring MVC 会话 + 基于 JWT 令牌

会话管理:如何为 REST 服务生成身份验证令牌? (球衣)

如果我使用基于令牌的身份验证,我还需要会话吗