連携追加
マイページなどからソーシャルログインの「連携追加」を行う実装イメージを例示します。
会員登録やマイページへのログインがある汎用的なサービスでのご利用イメージです。 ご利用サービスの状況に合わせて適宜読み替えてご利用ください。
画面遷移
シーケンス
下図の赤枠部分は、導入に際してお客様システム側でサーバサイド実装が必要な箇所となります。
処理概要
a. すべて未連携の状態からの連携追加
ソーシャルログインを経て「ソーシャルPLUS ID」を特定(⑬, ⑭)した状態で、ログイン中のユーザの「お客様サービス側ユーザID」を紐付け(⑮, ⑯)ます。
ご利用サービス側の会員登録処理を経由しないことを除き 新規登録時 と同じ処理になります。
b. 1つ以上の連携がある状態からの連携追加
ソーシャルログインを経て「ソーシャルPLUS ID」を特定(⑬, ⑭)します。すでに「お客様サービス側ユーザID」を紐付け済みの「ソーシャルPLUS ID」とは 別の「ソーシャルPLUS ID」 が応答されますので、この 2 つの「ソーシャルPLUS ID」を統合(⑰, ⑱)します。
ログインプロバイダ A が連携済みのところに、ログインプロバイダ B で連携追加を行う場合は以下のようになります。
- ログインプロバイダ A でソーシャルログインを行って発行された「ソーシャルPLUS ID (a)」
- 「お客様サービス側ユーザID」を紐付け済み
- ログインプロバイダ B でソーシャルログインを行って新たに発行された「ソーシャルPLUS ID (b)」
- 「ソーシャルPLUS ID (a)」に「ソーシャルPLUS ID (b)」を統合する
ソーシャルPLUS ユーザの統合(merge_user API) には「お客様サービス側ユーザID」を指定できます。つまり、統合して残したいユーザ (a) を「お客様サービス側ユーザID」dest_primary_key で指定し、連携追加したいユーザ (b) を「ソーシャルPLUS ID」source_identifier で指定します。
バリデーションチェック
ソーシャルログインで特定した「ソーシャルPLUS ID」に対して、紐付け済みの(別のユーザの)「お客様サービス側ユーザID」がある場合は連携追加を失敗させます。
一般的には "別のアカウントと連携されています" といったエラーメッセージを返してマイページに戻します。あるいは、"一度ログアウトしてソーシャルログインによるログインを行う" よう誘導します。
認証対象のソーシャルPLUS ID の取得(authenticated_user API) の応答値に「ソーシャルPLUS ID」identifier
とともに「お客様サービス側ユーザID」primary_key
の値(文字列)が返されます。
「お客様サービス側ユーザID」primary_key
が紐付けられていない場合は値が null
として返ります。