angular - 使用 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);
但是帖子从来没有发过,这怎么可能?
解决方案
您需要在 post 返回的 Observable 上调用 .subscribe
this.auth.socialLogin(user).subscribe((data) => {
});
推荐阅读
- go - 如何动态增加速率限制器限制?
- assembly - NASM 64 位 gcc 链接器错误。针对`.text`重定位R_X86_64_32S
- javascript - 使导航栏响应
- html - HTML - 如何强制视频包装器自动调整到页面布局
- python - BeautifulSoup 过滤功能:多种条件
- c# - 您可以在 Visual Studio Code 中自动生成步骤定义吗
- github - 识别 git repo 的组织名称
- c# - Gradle插件返回错误消息
- linux - bash - 获取正确处理新行的环境变量列表
- javascript - 将数据从父道具发送到子道具返回一个值,然后是未定义的功能组件