現在、私はメンバーシステムを実装するために従来の方法を使用しています。たとえば、ユーザーテーブルと他の関連テーブル(たとえばuser_product)には、そのユーザーにリンクするための外部キーがあります。
問題は、Facebookを介してメンバーのログインをどのように操作できるかということです。例えば
Facebookから情報を取得して、ユーザーテーブルに新しいアカウントを自動的に作成する必要がありますか?
Facebookユーザーなどの新しいテーブルを作成してから挿入する必要がありますか?
データベースに追加せずに、ログイン情報を無視する必要がありますか?
私が遭遇する問題は、user_idがあり、Facebookからログインする人々はそれを持っていないということです。そのため、購入などの機能を使用する場合、レコードを挿入できません。ただし、それらをユーザーテーブルに追加すると、いくつかの情報があります。パスワード、電話などがありません.....では、Facebookを介してログインを処理する一般的な方法は何ですか?ありがとう
これが実際に処理されるいくつかの異なる方法があります。一部のサービスでは、ユーザーが[Facebookからログイン]をクリックした後でも、ユーザーが情報を入力する必要があります。絶対に必要な情報がない限り、このアプローチには反対することをお勧めします。
ユーザーに対して多態的なアプローチを取り、通常のユーザーテーブルとFacebookユーザーテーブルを作成できます。SQLデータベースの継承にアプローチする方法は他にもありますが、これは複雑になる可能性があります。
3番目のアプローチは、FacebookIDトークンと認証トークンをusersテーブルのnull可能な列として設定することです。これには、パスワード列をnull許容にするか、長くてランダムなものに設定する必要もあります。このように、Facebookに関連付けられたアカウントは、サインインする方法を除いて、他のアカウントと同じように機能します。メールを持っているので、Facebookユーザーは「パスワードのリセット」オプションを使用してパスワード。
編集:
ユーザーのFacebookレコードを維持するために、必要なものの列を作成する必要があります。Facebook ID、oauthトークン、oauthシークレットなどがあります。ユーザーがFacebookでサインインをクリックすると、Facebookからの応答を受信したら、指定されたFacebookIDを持つユーザーがいるかどうかを確認するためのチェックを実行する必要があります。存在する場合はユーザーをサインインします。存在しない場合は作成します。
さらに簡単なのは、OmniAuthソリューションを検討することです。OPAuthはそのようなソリューションの1つです。ただし、このようなものを導入するには、既存のコードを作り直す必要がある場合があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加