使用 AWS Cognito over Express-Session 进行会话管理

Using AWS Cognito over Express-Session for session management

我在我的应用程序中使用 AWS Cognito 对用户进行身份验证。 AWS 为我们提供了 JWT 令牌。我的问题是我们是否需要使用 express-session 来处理会话管理,或者 AWS Cognito 提供的 JWT 令牌是否会负责经过身份验证的用户的会话管理。

当您使用 Cognito JWT 令牌时,您不需要显式 session 处理程序。

您可以将 JWT 令牌发送到客户端并将其存储在 Web 浏览器(本地存储,Session 存储或 Cookie)中,从而提供状态的持久性(充当 session 并将在令牌持续时间内有效。

对于所有后续请求,您需要将授权的 JWT headers 发送回您的快递服务器。

这将比 session 更有优势,如果您的 API 被 Web 浏览器以外的客户端使用,例如移动应用程序,它可以实现统一的状态管理。

为了最大限度地降低在需要高安全性的应用程序的 LocalStorage 中存储 ID 令牌的风险,请缩短令牌持续时间并使用刷新令牌生成新令牌。

注意:如果您使用 Cognito Hosted UI,则需要使用 Cognito Autorization 代码授权流程来获取刷新令牌。