如何在 Angular 和 Spring Boot 应用程序中添加社交登录功能。我用谷歌搜索了很多次,但没有得到正确的指导。如果有人已经这样做了,请告诉我。
问问题
903 次
2 回答
0
您可以使用Firebase Auth为您的应用提供社交登录功能。通过AngularFire库与 Angular 的集成很容易。
请参阅官方文档进行身份验证。
import { Component } from '@angular/core';
import { AngularFireAuth } from '@angular/fire/auth';
import { auth } from 'firebase/app';
@Component({
selector: 'app-root',
template: `
<div *ngIf="auth.user | async as user; else showLogin">
<h1>Hello {{ user.displayName }}!</h1>
<button (click)="logout()">Logout</button>
</div>
<ng-template #showLogin>
<p>Please login.</p>
<button (click)="login()">Login with Google</button>
</ng-template>
`,
})
export class AppComponent {
constructor(public auth: AngularFireAuth) {
}
login() {
this.auth.signInWithPopup(new auth.GoogleAuthProvider());
}
logout() {
this.auth.signOut();
}
}
然后在后端,使用 Spring Boot,您可以JWT
通过验证从 Angular 应用程序接收到的令牌来使用无状态身份验证。
我建议您阅读我对类似问题的回答。该案例侧重于 Google 登录,但主线类似。
总体思路是:*
- 前端通过 Firebase Auth(使用 AngularFire 库)对用户进行身份验证
- 前端应用程序检索身份验证令牌作为 JWT 令牌
- 前端随每个 HTTP 请求发送 JWT 令牌(带有授权标头)
- 后端为每个请求检索 JWT,验证其签名,并获取有效负载属性(电子邮件、ID……)
- 然后,后端检查用户数据库中的“电子邮件”或“ID”以允许或不请求。
一些资源:
于 2020-03-22T08:59:02.313 回答
0
检查这可能对某人有帮助
https://www.javainuse.com/spring/spring-social
我有现有的使用 JWT 令牌和 Spring boot 的登录系统,所以我仅将 Facebook 登录用于身份验证目的
于 2020-08-06T15:32:17.740 回答