私はgit https://github.com/szerhusenBC/jwt-spring-security-demo でこのプロジェクトを参照するJWTを使用して、トークンベースのスプリングセキュリティを開発しました。次に、アプリケーションでFacebookログインを取得する必要があります。ソーシャルログインの場合、別のWebページを見つけました https://ole.michelsen.dk/blog/social-signin-spa-jwt-server.html ソーシャルログインを実行する方法を説明しています。
通常のログインでは、私のJWTプロジェクトは、ユーザー名、パスワード、有効期限、作成日時に基づいてトークンを作成します。トークンが来るたびに、上記のフィールドからすべての値が取得および比較され、トークンが認証されて提供されます。 2つの質問があります。
春のブートアプリケーションでJWTを使用してソーシャルログインに利用できる優れたサイトがあるかどうかをお知らせください。
私も同じような状況にあり、少し異なるアプローチをとることに決め、FBでの認証の責任をサーバー自体に委任しました。
エントリポイントを提供します:“/auth/facebook”
FBにリダイレクトし、認証に進みます。
その後、ログインしたユーザーのAccessTokenを取得し、クライアントに返すJWTトークンを作成します。
以下は、類似のケースでSpring Social FacebookとSpring Securityを使用する方法を説明するブログ投稿です。 Stateless Spring Security Part 3:JWT + Social Authentication
Jwtからパスワードフィールドを削除することを検討してください。 Facebookはメールと名前を提供できるので、それをペイロードに使用します。これが私の例です。
userSchema.methods.generateJwt = function() {
var expiry = new Date();
expiry.setDate(expiry.getDate() + 7);
return jwt.sign(
{
_id: this._id,
email: this.email,
name: this.name,
exp: parseInt(expiry.getTime() / 1000)
},
jwt_secret
);
};