Auth0のアカウントリンク拡張機能を使ってアカウントマージ処理を実現してみました
こんにちわ。nap5です。
Auth0のアカウントリンク拡張機能を使ってアカウントマージ処理を実現してみましたので、紹介したいと思います。今回は簡単な検証手順の紹介になります。
以前の記事と関連しています。
以下のコミュニティのスレも参考になるかもです。
ソーシャルコネクションで今回もGithubとGoogleを選択して優先度を確認しました。
Googleのほうはデフォルトでバンドルしているので、Auth0のダッシュボードからGitHubをコネクションとして追加します。追加するときにいくつか入力する項目がありますが、以下のリンクを参照していい感じにエミュれば、達成できます。
ソーシャルコネクションを追加した後は、アカウントリンク機能を拡張機能としてインストールして有効化しておきます。※すでに存在するアカウントアドレスに対しては後付けで効力を発揮しなかったので、事前にアカウントアドレスは削除しておく必要があります。本番稼働時でアカウントリンクを利用する際にはリリース前にこの拡張機能をインストールしておく必要があります。
結論としては、きちんとマージされてることが確認できました。アカウントリンクを利用する際にはプライマリーアカウントとセカンダリアカウントの2つの区別が登場します。プライマリーアカウントには最初にアカウント作成する認証方式が設定されます。セカンダリアカウント(後付けで作成したアカウント)にはメールアドレス認証経由やGitHub認証経由などのサードパーティーアカウントがバンドルされてきます。メールアドレス認証の場合はVerifyEmailのメールが飛んでくるので、検証するのがいいと思います。
最後にまとめると、以下の2つを対応するだけで簡単にメールアドレス単位のマージ処理を実現できました。
ソーシャルコネクションの追加
アカウントリンク拡張機能のインストール
手動でやるとデータベースに登録したタイミングでトリガー仕込んだり手間かかる部分なので、ハンディなのはいいですね。
残課題としてはアバター画像の優先度管理ですかね(複数認証プロバイダがある場合)。案件に応じてここらへんはいい感じに対応していければ、良さそうですかね。選択できるオプションを提供できるUIもありっちゃありですかね。
簡単ですが、以上です。