Auth Guard承诺

时间:2019-07-19 04:43:00

标签: authentication promise angular7 guard aws-amplify

我正在使用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);

        });
    });
  }

0 个答案:

没有答案