16

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 つの質問があります。

  1. ソーシャル ログインでは、パスワードは作成されません。Facebookからトークンを受け取ります(私のフロントエンドはこれを行います)。トークンが有効かどうかを確認する必要があります。JWTでどうすればいいですか?
  2. 記事に従って検証した後、将来の参照用に独自のトークンを作成することになっています。現在、facebook のログインにパスワードはありません。トークンを作成するにはどうすればよいですか?

spring boot applictaion で JWT を使用してソーシャル ログインできるサイトがあれば教えてください。

4

2 に答える 2

3

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
  );
};
于 2018-03-01T02:19:02.163 に答える