<aside> 📌

UP-Dreamの管理者Webで、異なるOAuthで作られた同一人物のアカウントを統合した際の記録です。

</aside>

目標

別のログイン手段で登録し直した人がいても、すでに記録がある方に新しいアカウントが合わさり、会員情報にKakao・Appleなどのログイン手段がすべてつながっていること。

起きていたこと

原因:どこを「一人の人物」と見なすか

統合機能はAIコーディングツールで実装しました。その実装はOAuthアカウントを単位にして、あるアカウントのデータを別のアカウントへ移す方式でした。しかし出席記録はログインアカウントではなく在籍データに紐づいています。データが実際にどこに紐づいているかを考慮していなかったため、アカウント情報だけが移り、出席記録は元の場所に残っていました。

対策:基準軸を変える

在籍データを「一人の人物」を表す基準レコードとし、OAuthアカウントはその人物に紐づくログイン手段として統合する形に作り直しました。出席記録はもともと在籍データにあるので、統合のたびに移したり書き換えたりする必要がなくなりました。

あわせて以下も直しました。

想定したケースと検証

新規のログイン手段がKakaoとAppleになった時点で、起こりうる順番をすべて書き出しました。

  1. 在籍登録 → Kakao
  2. 在籍登録 → Apple