2016-07-22 14 views
1

私はYii2 rest apiをモバイルアプリケーションで使用するために作成したいと考えています。モバイルアプリ/ Yii2残りのAPIとFacebookのログイン

ユーザーは、Facebookアカウントを使用してアプリケーションにログインし、残りのAPIにアクセスする必要があります。

私のデータベースには、デフォルトのYiiユーザーテーブルがあり、余分な列TOKEN char(32)があります。

私が今まで行ったこと: モバイル: 1 - ユーザーはモバイルアプリケーションを開きます。 2 - Facebookアカウントを使用してログインします。

Yii2フレームワーク: 1 - yii2 rest apiを作成します。http://budiirawan.com/setup-restful-api-yii2/(返品国);

しかし、次に何ですか?

私はFacebookからトークンを受け取っていますか? このトークンをRest APIに送信しますか?どうやって?私は使用する必要があります:ユーザーモデルで実装されたfindIdentityByAccessToken? このトークンをユーザーテーブルに保存する必要はありますか? このトークンはfacebookによって返されますか、または一時的ですか? sslを使用してこのトークンを使用するだけで、ユーザー権限を比較する必要がありますか?あるいは私はYii環境にOuath2を含める必要がありますか? Facebookはすでにこの検証を行っていますが、わかりません。

ありがとうございます。

答えて

0

私は一度同じシナリオを実行しました。私がしたことは:

  1. あなたのユーザーはYiiのウェブサイトにログインし、彼に彼のfacebookアカウントを設定パネルから接続させてもらいました。アクセストークン、有効期限、FacebookのIDなどを取得し、User IDとEmail IDにマッピングしてテーブルに格納します。
  2. あなたのユーザーのアクセストークンがあります。ユーザーがモバイルアプリにログインできるようにする。 Facebookにログインさせるログイン後にアクセストークンを取得します。
  3. このトークンを各リクエストと共にapiコールで送信し、Yiiアプリでこのトークンを使用して、このトークンを使用してFacebook SDKを呼び出すユーザーの詳細を取得します。トークンが有効な場合は、メールID、FacebookのIDなどのユーザープロフィールを取得します。
  4. テーブルからメールまたはFacebookのIDを確認し、ユーザーが存在するかどうかを確認します。ユーザーが存在する場合は、ユーザーが承認され、要求を処理し、データで応答することを意味します。ユーザーが存在しない場合は、彼が自分のアカウントに接続していないか、無効なFacebookアカウント経由でログインしようとしていることを意味します。
  5. また、アプリケーションにローカルにアクセストークンを格納し、期限が切れるかどうかをYiiサーバーで確認します。有効期限が切れている場合は、何らかの応答を送信して行動を特定し、アプリから新しいアクセストークンを取得します。

上記の解決策は私の魅力のように私のために働いた。見てみな。 また、既存のYiiアプリ用に独自のOuth 2.0サーバーを設定することもできます。これらのチェックアウトはlinksです。

これはあなた(または)に役立ちます。 :)

関連する問題