gpt4 book ai didi

amazon-web-services - 为什么我的 AWS Cognito 用户能够登录,但在使用 Auth.currentAuthenticatedUser() 时出现 "not authenticated"?

转载 作者:行者123 更新时间:2023-12-04 02:38:55 25 4
gpt4 key购买 nike

我已通过 AWS 管理控制台手动将 AWS Cognito 用户添加到我的应用程序的用户池中。已为此用户确认所需的用户池凭据。我正在设置一个 auth guard 来控制对路由的访问。每当我使用 Auth.signIn() 函数时,promise 都会成功解析,但是,在登录后调用 Auth.currentAuthenticatedUser() 时,canActivate() 函数中的 promise 会返回一条错误消息“未通过身份验证”。我已经阅读了关于 cookieStorage 的 GitHub 问题导致了这方面的问题,但没有配置它。

登录.component.ts

signIn(username, password) {

return new Promise(() => {
Auth
.signIn(username, password)
.then(() => {
this.router.navigate(['main/dashboard']); // navigates to main/dashboard as expected
})
.catch(err => {
this.authenticationError = err.message;
})
});
}

auth.guard.ts

canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
return Auth
.currentAuthenticatedUser()
.then(() => {
return true;
})
.catch((err) => {
this.router.navigate(['signin']);
console.log(err) // "not authenticated"
return false;
});
}

最佳答案

通过 AWS 管理控制台创建的用户不被视为已通过身份验证,除非该用户的状态字段为已确认。我的状态字段是 FORCE_CHANGE_PASSWORD。 AWS 希望通过控制台创建的用户在首次登录或使用电子邮件或移动验证验证其帐户后更改密码。对于我的应用程序,我不想使用电子邮件或移动验证。为了解决这个问题,我为该用户使用了以下 aws-cli 命令。

aws cognito-idp admin-set-user-password --user-pool-id your_user_pool_id --username username --password password --permanent

关于amazon-web-services - 为什么我的 AWS Cognito 用户能够登录,但在使用 Auth.currentAuthenticatedUser() 时出现 "not authenticated"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60274588/

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