現在、私のウェブサイトでは、ユーザーはログインIDとパスワードでログインし、登録時にemail
も入力する必要があります。 users
テーブルのlogin_id
とemail
の両方のカラムにユニークなインデックスがあります。 users
テーブルには、gender
、last_name
、first_name
などのユーザーに関連付けられている他のデータも格納されますが、これらはオプションの(null可能な)フィールドです。facebook機能を使用してログインを実装するには、クライアント側のフローまたはサーバー側のフローまたは両方が必要ですか?
私はウェブサイトに2つの変更を加えたいと思います。
最初の1つは、ユーザーがメールに(login_id
に加えて)ログインすることです。新規ユーザーの場合、登録時にlogin_id
を提供する必要はなくなりました。ログインするためにメールを使用するためです。
第2の変更点は、Facebookでログインできることです。新規ユーザーの場合、facebookで初めてログインすると、facebookのuidが取得され、自分のデータベースに保存されます。つまり、テーブルにfacebook_uid
列を追加する必要があります。
facebookで初めてログインするときは、最初にfacebookプロフィールからメールアドレスを取得してから、そのメールを使ってそのメールを使っているレコードがusers
テーブルに存在するかどうか確認してくださいfacebook uidは、そのレコードのfacebook_uid
カラムにも格納されます。
facebookによると、そのプラットフォームは、ユーザーログインのための2つの異なるOAuth 2.0フロー、すなわちサーバー側フローとクライアント側フローをサポートしています。どちらか一方または両方がこのユースケースに必要ですか?
また、上記のような機能を実装すると、どのような問題が予想されますか?