我正在使用AWS Amplify进行角度项目的登录。如果用户未登录,我希望用户重定向到登录页面,并且如果已登录和购买标志为false,则应将其重定向到结帐页面。为此,我使用了Auth Guard。但它会陷入无限循环。
请建议
canActivate(): Promise < boolean > {
return new Promise((resolve) => {
Auth.currentAuthenticatedUser({
bypassCache: false
})
.then((user) => {
localStorage.setItem('UserAttributes',JSON.stringify(user.attributes));
localStorage.setItem('IsPurchased',user.attributes["custom:IsPurchased"]);
localStorage.setItem('userGroup',user.signInUserSession.idToken.payload['cognito:groups']);
let IsPurchased=localStorage.getItem('IsPurchased');
let userGroup=localStorage.getItem('userGroup');
if(user){
if(IsPurchased=='0')
{
this.router.navigate(['/checkout']);
return Promise.resolve(false);
}else{
return Promise.resolve(true);
}
}
})
.catch((errr) => {
this.router.navigate(['/login']);
return Promise.resolve(false);
});
});
}