1

現在、私のウェブサイトでは、ユーザーはログインIDとパスワードでログインし、登録時にemailも入力する必要があります。 usersテーブルのlogin_idemailの両方のカラムにユニークなインデックスがあります。 usersテーブルには、genderlast_namefirst_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フロー、すなわちサーバー側フローとクライアント側フローをサポートしています。どちらか一方または両方がこのユースケースに必要ですか?

また、上記のような機能を実装すると、どのような問題が予想されますか?

答えて

1

どちらのアプローチを取ってもかまいませんが、それはあなた次第です。どちらの方法でも必要なデータを得ることができます。バックエンドとフロントエンドでどれくらい快適に作業しているかの問題です。ユーザーの電子メールアドレスにアクセスするための許可を求めるだけで済みます。

問題が発生する可能性があります。ユーザーのFacebook IDの保存に関する法的な制限があるかもしれません。また、私のメールアドレスに誰か(私の悪人ではない)が登録し、そのアドレスに実際にアクセスできることを確認しないと、どうしたらいいですか?同じ人物と悪意のあるハッカーが現在自分のアカウントにアクセスできます。考えられるシナリオだが起こりうる...

関連する問題