2016-05-27 1 views
0

たとえば、githubやslackなど、サードパーティのサービスからアプリケーションに認証を統合する場合、ユーザーが自分のアプリにサインアップしてサードパーティのサービスで正常に認証されると、そのデータはどのように見えますか私は受け取るでしょうか?oauth2の確認のリダイレクトはどうすればよいですか?

具体的には、これがユーザーの2回目または3回目のログインで、以前に既にサインアップしている場合、既にサインアップされていることをどのように確認できますか?データベースに保存する必要があるデータは何ですか?

ユーザーの身元に関するデータを実行する必要がある共通保守または保守はありますか?それは陳腐ですか?

答えて

1

受信するデータは、サードパーティのサービスに問い合わせる際に作成するリクエストURIのresponse_typeおよびscopeパラメータによって異なります。受信したid_tokenは、常にJSON Webトークン(JWT)です。

"openid"スコープを要求すると、id_tokenはトークンペイロードの一部として "iss"、 "sub"クレームを持ちます。これらの2つの主張は、プロバイダが誰であるか、およびそのプロバイダのそのユーザの一意のIDによってユーザを一意に識別します。これら2つの値の組み合わせをデータベースに保存して、ユーザーがすでにサインアップしているかどうかを確認できます。

サードパーティのプロバイダを使用して最小限の情報(iss、sub)のみを保存する場合は、情報を把握する必要はありません。これはメンテナンスに対処したくないときには良いアプローチになります。ユーザープロファイル関連の情報が必要な場合は、ユーザーの詳細情報を含む要求の一部として「プロファイル」スコープを要求することができます。

ありがとう、 Soma。

関連する問題