メインコンテンツまでスキップ

マイページから連携追加

マイページなどからソーシャルログインの「連携追加」を行う実装イメージを例示します。

警告

会員登録やマイページへのログインがある汎用的なサービスでのご利用イメージです。
ご利用サービスの状況に合わせて適宜読み替えてご利用ください。

シーケンス

下図の赤枠部分は、導入に際してお客様システム側でサーバサイド実装が必要な箇所となります。

処理概要

a. すべて未連携の状態からの連携追加

ユーザー認証リクエスト(②〜⑱)、トークンの取得(⑲〜⑳)、ID Token の検証(㉑〜㉓)を経て「ソーシャルPLUS ID」を特定(㉔)した状態で、ログイン中のユーザの「お客様サービス側ユーザID」と「ソーシャルPLUS ID」を紐付け(㉕〜㉖)ます。

注記

ご利用サービス側の会員登録処理を経由しないことを除き 新規登録時 と同じ処理になります。

b. 1つ以上の連携がある状態からの連携追加

ユーザー認証リクエスト(②〜⑱)、トークンの取得(⑲〜⑳)、ID Token の検証(㉑〜㉓)を経て「ソーシャルPLUS ID」を特定(㉔)します。ログイン中のユーザの「お客様サービス側ユーザID」と、この「ソーシャルPLUS ID」を指定して、2 つのユーザーを統合(㉗〜㉘)します。

例として、ログインプロバイダ A が連携済みのところに、ログインプロバイダ B で連携追加を行う場合は以下のようになります。

  • ログインプロバイダ A でソーシャルログインを行って発行された「ソーシャルPLUS ID (a)」
    • 「お客様サービス側ユーザID」を紐付け済み
  • ログインプロバイダ B でソーシャルログインを行って新たに発行された「ソーシャルPLUS ID (b)」
  • 「ソーシャルPLUS ID (a)」に「ソーシャルPLUS ID (b)」を統合する
    • 統合後の「ソーシャルPLUS ID (a')」に「お客様サービス側ユーザID」が紐付け済み
    • 統合後は「ソーシャルPLUS ID (b)」は削除される
ヒント

ソーシャルPLUS ユーザの統合(merge_user API) には「お客様サービス側ユーザID」を指定できます。つまり、統合して残したいユーザ (a) を「お客様サービス側ユーザID」dest_primary_key で指定し、連携追加したいユーザ (b) を「ソーシャルPLUS ID」source_identifier で指定します。

チェック処理

ID Token のペイロードに、紐付け済みの(別のユーザの)「お客様サービス側ユーザID」がある場合(㉔)は、別のユーザーと連携済みであるとして連携追加の処理を中断します。

一般的には "別のアカウントと連携されています" といったエラーメッセージを返してマイページに戻します。あるいは、"一度ログアウトしてソーシャルログインによるログインを行う" よう誘導します。

関連ドキュメント