2011-11-05 9 views
0

ウェブサイトには、Facebookのログインとウェブサイトの標準ログインの2種類のログイン方法があります。Dertermine(Facebookまたはウェブサイトのログインでのユーザーログインの場合)

ユーザーがFacebookやウェブサイトのログイン情報でログインしたかどうかを判断する正しい方法は何ですか?

login_typeというフィールドをusersテーブルに追加すると考えています。

値は、ユーザーがFacebook経由でログインした場合、$_SESSION['login_type'] = "facebook"のようなセッション何かにlogin_typeの値を格納し、「フェイスブック」または「標準」

になります。

ただし、ログアウトしたい場合は、必ずfacebookログアウト機能を実行する必要があります。

これは何か?

logout.php

if ($_SESSION['login_type'] == "facebook") { 
    $facebook->getLogoutUrl() 
    //execute the url to CURL? 
    header("LOCATION: index.php"); 
} 

答えて

2
  1. ユーザーはFacebook経由でログインすると、あなたがまったく同じことを行う
  2. (例えばfb_id)ユーザーテーブルにFacebookのユーザーIDのフィールドを追加します。あなたは "普通の"ログイン中に行うでしょうが、ユーザー名/パスワードをチェックする代わりに、FacebookのID /有効なアクセストークンを確認します。
  3. これで、彼のセッションでユーザーを認証できます。もうFacebookのログインについて気にする必要はありません。
  4. あなた自身のセッションなどを殺すと、FacebookのログアウトURLにリダイレクトされ、そこでFacebookはセッションのものを殺します。あなたはfacebook.comのクッキーを取得しないため、実際にはそれを巻くことはできません。 ;)これを行うとFacebookにユーザーがログアウトしてしまい、彼はかなり迷惑になる可能性があります。

P.S.:あなたのアプリがFacebook外で実行されている場合は、アプリ/ウェブサイトからログアウトしたときにFacebookからユーザーをログアウトする必要があります。 I.6参照。 https://developers.facebook.com/policy/#policies

関連する問題