私は、ユーザーが電子メール/パスワードの組み合わせ、またはFacebookやGoogleのサインアップを使って手動でサインアップできるアプリを開発中です。FacebookやGoogleから自分のアプリにサインアップしたかどうかを覚えていないユーザーを扱うにはどうすればいいですか?
iOS上でそれぞれのライブラリを使用しています.FBまたはGoogleからのトークンを私に提供します。アプリはこのトークンをバックエンドに送信します。バックエンド側では、それぞれの第三者を介してトークンを検証し、有効であれば、第三者からユーザーのIDを取得します。このIDを使用して、データベース内のユーザーを識別します。データベースでは、このユーザーの電子メールも保存します。
私の問題は、ユーザーがアプリを削除して再インストールし、facebookやgoogleのログインで登録したかどうかを忘れた場合に発生します。彼らはもともとfacebookを使ってサインアップしていましたが、今再インストールした後、googleのボタンを使ってサインインします。 バックエンドが新しいGoogleトークンを受け取ってそれを検証すると、GoogleからそのユーザーのIDが取得されます。このIDはFacebookにサインアップしたユーザーの元のIDとは異なるため、技術的には全く異なるユーザーです。また、元のユーザーの電子メールはすでにデータベースに保存されているため、同じ電子メールで重複したユーザーを作成することはできません。
この状況を回避するには適切な方法はありますか? 最初にFacebook経由でサインアップしたことを知らせる情報エラーがユーザーに表示され、使用する必要がありますか?
ログイン後のGoogle/FBのようなユーザーデータを取得するこの資格情報を使用したログイン次回の他の方法によるログインでは、電子メールIDがdb内に存在するかどうかを確認します。 google/fbまたはidメソッドによるユーザーログインは同じになります。 –