首页 > 解决方案 > 使用 Angular 6 进行社交登录后永远不会执行 POST

问题描述

我正在使用angularx-social-login通过 Facebook 和 Google 与我的 Angular 6 应用程序连接。

效果很好,我可以从 FB 和 Google 获取用户数据,但是我想在我的后端进行 POST,而 POST 从来没有在 Chrome 控制台中进行。

这是我的代码:

在 login.component.ts

signInWithFB(): void {
    this.socialAuthService.signIn(FacebookLoginProvider.PROVIDER_ID);
    this.socialAuthService.authState.subscribe((user) => {
      this.auth.socialLogin(user);
    });
  }

在 authentication.service.ts

socialLogin(userData) {
    const user = new User(userData.name);
    user.email = userData.email;
    user.firstname = userData.firstName;
    user.lastname = userData.lastName;
    user.avatar = userData.photoUrl;
    user.provider = userData.provider;
    user.token = userData.authToken;
    console.log(user);
    return this.http.post<any>(environment.apiUrl + '/auth/socialLogin', user, httpOptions)
      .pipe(
        map((res: any) => {
          return res;
        }),
        catchError(this.handleError('login', []))
      );
  }

我可以看到结果:

     console.log(user);

但是帖子从来没有发过,这怎么可能?

标签: angular

解决方案


您需要在 post 返回的 Observable 上调用 .subscribe

this.auth.socialLogin(user).subscribe((data) => {

});

推荐阅读