Facebook機能でログインを実行するために、クライアント側のフローまたはサーバーサイドのフローまたはその両方が必要ですか?
-
12-12-2019 - |
質問
現在の私のウェブサイトでは、ログインIDとパスワードでログインしているため、登録時にemail
を入力する必要があります。 login_id
テーブルのemail
列の両方に固有のインデックスがあります。 users
テーブルには、users
、gender
、last_name
などのユーザーに関連付けられている他のデータも格納されていますが、これらはオプション(Nullable)フィールドです。
私がウェブサイトにしたいのは2つの変更があります。
最初のものは、ユーザーはログインするために(first_name
に加えて)電子メールを使用することができます。新規ユーザーの場合、登録すると、それらは電子メールをログインするために自分の電子メールを使用するため、login_id
を提供する必要はもうありません。
2番目の変更は、Facebookでログインできます。新規ユーザーの場合、初めてFacebookでログインした場合、それらのFacebook UIDが取得され、データベースに保存されます。つまり、login_id
テーブルにfacebook_uid
列を追加する必要があります。
既存のユーザーは、Facebookで初めてログインすると、まずFACEBOOKプロファイルから自分のEメールアドレスを入手してから、users
テーブルでそのEメールを使用してレコードがすでに存在するかどうかを確認してください。 UIDはそのレコードのusers
列にも保存されます。
Facebookによると、そのプラットフォームはユーザーログインの2つの異なるOAuth 2.0フローをサポートしています。サーバー側のフローとクライアント側のフロー。このユースケースにはどちらが必要ですか?
また、私が上記の説明のような機能を実装するときにはどのような問題があるか?
解決
これへのアプローチを取ることができました、それは完全にあなた次第です。どちらの方法もあなたが必要とするデータを与えるでしょう、それはあなたが背中VSフロントエンドにどのくらい快適であるかという問題です。ユーザーのEメールアドレスにアクセスする権限を求める必要があります。
起こりうる問題:私はよくわからないが、ユーザのFacebook IDを格納するという法的制限があるかもしれません。また、誰かが私のEメールアドレスと一緒に登録し、あなたが本当にそのアドレスにアクセスできることを検証しないであれば、私がFacebookを介してログインすると、アプリは私たちのものを想定します。同じ人と邪悪なハッカーが私のアカウントにアクセスできるようになりました。ほとんどシナリオが起こる可能性があります...