gpt4 book ai didi

amazon-web-services - AWS Cognito + aws-amplify : session state always keep user logged in?

转载 作者:行者123 更新时间:2023-12-04 13:19:00 27 4
gpt4 key购买 nike

我正在使用 AWS Cognito 和 aws-amplify 来管理用户身份验证。当我加载我的应用程序时,我调用了 Auth.currentSession() 这似乎总是返回我登录的用户,就好像我没有通过调用 Auth.signOut() 明确注销一样

如果用户选择“让用户保持登录状态”,我对此没有意见,但如果他们不选择,我将如何确保用户在离开应用程序后注销?

我尝试在我的 login() 方法中添加一个事件监听器,但这没有用,即当我返回应用程序时用户仍然登录:

.
.
.

if (!keepSignedIn) {
window.addEventListener('unload', function(event) {
Auth.signOut();
});
}

最佳答案

我很确定 logout() 方法创建了一个 promise - 它异步运行。因此,该页面可能在执行 promise 的注销代码之前被销毁。

您可以通过执行 console.log(Auth.signOut()); 来确认这一点.如果这是一个 promise ,它将记录 Promise { <pending> }

没有办法停止页面的卸载,因为如果我们可以的话那会很糟糕。

您需要的是同步注销功能。幸运的是,您可以只清除浏览器本地存储,这是一个同步操作。 (本地存储是 Amplify 存储身份验证 token 的地方。)

if (!keepSignedIn) {
window.addEventListener('unload', function(event) {
localStorage.clear();
});
}

根据您的情况,您可能需要查找并删除单个本地存储项目,而不是全部清除它们。

关于amazon-web-services - AWS Cognito + aws-amplify : session state always keep user logged in?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56295727/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com