Javascript 检查用户是否已登录-aws amplify、cognito、angular

Javascript 检查用户是否已登录-aws amplify、cognito、angular,javascript,angular,amazon-web-services,amazon-cognito,aws-amplify,Javascript,Angular,Amazon Web Services,Amazon Cognito,Aws Amplify,我试图使用aws amplify在angular应用程序中实现登录功能 当我点击“使用谷歌登录”按钮时,它会将我带到谷歌登录页面,并在我提供有效的谷歌凭证时将我带回到主页 在我的authService中,我正在收听'auth'事件。因此,当用户登录时,主题“isLoggedInSub”会发出一个“true”值。我试图显示“isLoggedIn$”的可观察值,该值由该主题构成。但它总是显示错误。正如您在我的html页面中看到的,我使用异步管道来显示值。为什么不显示值true 当我调试上面概述的这个

我试图使用aws amplify在angular应用程序中实现登录功能

当我点击“使用谷歌登录”按钮时,它会将我带到谷歌登录页面,并在我提供有效的谷歌凭证时将我带回到主页

在我的authService中,我正在收听
'auth'
事件。因此,当用户登录时,主题“isLoggedInSub”会发出一个“true”值。我试图显示“isLoggedIn$”的可观察值,该值由该主题构成。但它总是显示错误。正如您在我的html页面中看到的,我使用异步管道来显示值。为什么不显示值true

当我调试上面概述的这个特定流时,我确实看到它命中了主题发出true的代码。ie
this.isLoggedInSub.next(true)

logincomponent.html

<button (click) ="signInWithGoogle()" type="button" class="btn btn-outline-primary">Login with Google</button>    
<span>is loggedin: {{this.authService.isLoggedIn$ | async}}</span>
auth.service.ts

async signInWithGoogle() {
    await this.authService.socialSignIn(AuthService.GOOGLE);
  }
private isLoggedInSub = new BehaviorSubject<boolean>(false);
isLoggedIn$ = this.isLoggedInSub.asObservable();

constructor() {
    Hub.listen('auth', (data) => {
      switch (data.payload.event) {
        case 'signIn':
          this.isLoggedInSub.next(true);
          break;
        case 'signOut':
          this.isLoggedInSub.next(false);
          break;
        case 'signIn_failure':
          break;
        default:
          break;
      }
    });
  }

socialSignIn(socialProvider: CognitoHostedUIIdentityProvider): Promise<ICredentials> {
    return Auth.federatedSignIn({
      provider: socialProvider,
    });
  }
private isLoggedInSub=新行为主体(false);
isLoggedIn$=this.isLoggedInSub.asObservable();
构造函数(){
Hub.listen('auth',(数据)=>{
开关(data.payload.event){
案例“签名”:
this.isLoggedInSub.next(true);
打破
“注销”案例:
this.isLoggedInSub.next(false);
打破
“签名失败”案例:
打破
违约:
打破
}
});
}
socialSignIn(socialProvider:CognitoHostedUIIdentityProvider):承诺{
返回Auth.federatedSignIn({
提供者:socialProvider,
});
}