AWS cognito“记住我”选项

问题描述 投票:0回答:1

我有一个 React Native 和一个带有 AWS 后端的 React Native Web 前端应用程序。 对于身份验证,我使用 AWS Cognito。 我的一些用户使用公共计算机,因此对于这些用户来说,身份验证令牌应在一小时内过期(如果他们在登录期间将“记住我”选项设置为 false)。

问题

AWS 放大

虽然 AWS amplify 是一个高级库,没有太多定制空间,但我可以删除刷新令牌吗?

这是一个有效的选项吗?更重要的是,一个安全的选择?

react-native amazon-cognito aws-amplify refresh-token react-native-web
1个回答
0
投票

您无法在对

/oauth2/token
端点的请求中设置访问、ID 或刷新令牌的生命周期,就像其他 IdP 似乎可以做到的那样:

https://docs.aws.amazon.com/cognito/latest/developerguide/token-endpoint.html

如果刷新令牌已过期,您的应用程序用户必须通过以下方式重新进行身份验证 再次登录您的用户池。

根据应用程序的安全配置文件,您不应指定较低的刷新令牌过期时间,因为这会损害用户的体验:

https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-refresh-token.html

您无法操纵 cookies 的过期时间来删除它们,无论是在指定时间还是在浏览器关闭时,因为它们被配置为 HttpOnlySecure:

您还可以添加到期日期(以 UTC 时间表示)。默认情况下,cookie 关闭浏览器时删除:

您确定令牌存储为 cookie 吗?通常它们存储在本地或会话存储中。如果是这样,可以使用 JavaScript 在客户端删除它们。这个 answer 显示,您可以配置 Amplify 库将令牌存储在会话存储中,即,当浏览器选项卡关闭时,它们将被删除:

Auth.configure({ storage: window.sessionStorage })

最后,您可能想撤销用户的刷新令牌。这可以仅使用访问令牌来完成:

https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-refresh-token.html#amazon-cognito-identity-user-pools-revoking-用户所有代币

© www.soinside.com 2019 - 2024. All rights reserved.