提取auth0用户配置文件数据作为auth.effect.ts中的操作有效负载

时间:2018-12-10 19:25:53

标签: angular redux rxjs auth0

我是redux的新手。因此,我在我的角度应用程序中使用了ngRx,并且尝试向其中添加auth0。在我的auth.effect.ts中,我试图获取用户配置文件数据,然后将其作为有效内容发送给操作。我不确定该怎么做。这就是我尝试过的方式。但是由于获取用户配置文件的方法是异步的,因此无法正常工作,但我不确定如何修复它。

auth.service.ts

  userProfile: any;
  auth0Profile(authResult,cb):void{

     this._Auth0.client.userInfo(authResult.accessToken, (err, profile) => {
      if (profile) {

        this.userProfile = profile;
      }
      cb(err, profile);
     });

   }

auth.effect.ts

  @Effect()
  loginComplete$ = this.actions$
    .ofType<fromAuth.LoginComplete>(fromAuth.AuthActionTypes.LoginComplete)
    .pipe(
      exhaustMap(() => {
        return this.authService.parseHash$().pipe(
          map((authResult: any) => {
            if (authResult && authResult.accessToken) {

                this.authService.auth0Profile(authResult,(err, profile) => {
                  console.log(profile);
                  this.userProfile=profile;
                  return new fromAuth.LoginSuccess(this.userProfile);

                });




            }else{
              return false;
            }
          }),


          catchError(error => of(new fromAuth.LoginFailure(error)))
        );
      })
    );

0 个答案:

没有答案