我正在使用ReactJS创建一个无服务器网站,其中AWS Amplify用于身份验证,AWS Cognito用于用户池。
如果用户在一个小时内未处于活动状态(或者如果他们关闭了选项卡并且一个小时都没有回到网站),我正在尝试让该网站注销用户。但是,即使我第二天访问该网站,我的用户仍会继续登录。
我在Amplify的文档中读到Amplify过期后会自动刷新令牌,但是我找不到禁用它的方法。
在此方面,我将不胜感激。我不确定如何解决这个问题。
谢谢。
答案 0 :(得分:0)
默认情况下,刷新令牌在您的应用程序用户登录到用户池后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/