AWS Cognito:令牌自动存储在本地存储中。如何将它们保存在会话存储中?

Kid*_*g_C 7 session-storage amazon-web-services local-storage jwt amazon-cognito

我正在将 AWS Amplify / AWS Cognito 用于我的 Web 应用程序。它会自动将令牌放入浏览器的本地存储中。这是 SDK 的预期行为。它将令牌添加到本地存储中,以便用户可以在会话关闭然后重新启动后使用该应用程序,而无需再次登录。

但是,在我奇怪的用户场景中,我必须制作我的网络应用程序,以便当用户关闭浏览器并重新打开它时,用户必须再次登录。

因此,我不需要将令牌保存在 localStorage 中,而是需要将它们保存在 Web 浏览器的 sessionStorage 中。

怎样做才好看呢?

And*_*lis 10

window.sessionStorage这可以通过传递到您的身份验证配置来完成。

Auth.configure({ storage: window.sessionStorage })
Run Code Online (Sandbox Code Playgroud)

  • @KimiRaikkonen9790 其一,会话和本地存储被限制为同源(即方案 + 域 + 端口),默认情况下它比 cookie 更具限制性。其次,如果您无法信任用户拥有自己的凭据,那么您确实需要重新考虑您的访问控制。如果您想控制令牌中存在哪些声明,请考虑在 cognito 客户端配置中禁用它们或使用 [预令牌生成处理程序](https://docs.aws.amazon.com/cognito/latest/开发人员指南/user-pool-lambda-pre-token- Generation.html)。 (2认同)