AWS Amplify用户会话不会在ReactJS中过期

时间:2019-02-15 15:27:40

标签: reactjs amazon-web-services amazon-cognito aws-amplify

我正在使用ReactJS创建一个无服务器网站,其中AWS Amplify用于身份验证,AWS Cognito用于用户池。

如果用户在一个小时内未处于活动状态(或者如果他们关闭了选项卡并且一个小时都没有回到网站),我正在尝试让该网站注销用户。但是,即使我第二天访问该网站,我的用户仍会继续登录。

我在Amplify的文档中读到Amplify过期后会自动刷新令牌,但是我找不到禁用它的方法。

在此方面,我将不胜感激。我不确定如何解决这个问题。

谢谢。

2 个答案:

答案 0 :(得分:0)

根据认知文档( https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html#amazon-cognito-user-pools-using-the-refresh-token

  

默认情况下,刷新令牌在您的应用程序用户登录到用户池后30天到期。为用户池创建应用程序时,可以将应用程序的刷新令牌到期时间(以天为单位)设置为1到3650之间的任何值。

如果您未更改默认值,则Amplify将能够刷新令牌30天。即使将其更改为最小值1,Amplify也可以刷新24小时。

为了跟踪预期的会话到期时间,即使用户关闭浏览器,您也需要将该数据存储在数据库中。您可以使用lambda测试该值,然后根据需要使用Auth.signOut()

答案 1 :(得分:0)

看起来现在可以将刷新令牌设置为仅在 60 分钟后过期。 这可以在用户池->常规设置->应用程序客户端->在 Cognito 控制台中显示详细信息中进行设置。

根据以下帖子,我认为此更改是在 2020 年 8 月宣布的:https://aws.amazon.com/about-aws/whats-new/2020/08/amazon-cognito-user-pools-supports-customization-of-token-expiration/