2012-04-03 11 views
2

FacebookユーザーがFacebookappのある時点(fb.loginを使用して)にログインし、そのユーザーがデータベースに保存されていると仮定すると、どのようにして、ユーザーがあなたのアプリケーションで再認証を許可することができますか?(fb.api( '/ me')に失敗した場合)一度ログインしたfacebookユーザーの再認証

署名付きリクエストにはユーザーIDが保持されますが、そこからユーザーをどのようにログインさせますか?

私はPHP sdkを使用しています。私は基本的にFB.api( '/ me')を使用してウェルカムページまたはユーザーページに誘導します。しかしFBは場合によっては通常1日か2日後に偽を返すので、私はAccesstokenの有効期限が切れたと考え始めました。再認証の仕方がわからず、ユーザーIDがまだ署名済みの依頼に存在するという知識しかありません。

答えて

0

Facebook経由のログインを促すためにはJavaScript SDKを使用します。

https://developers.facebook.com/docs/reference/javascript/FB.login/

また、あなたがserver-side auth中にFacebookから返されたコードを格納しようとするときに、ユーザーに新しいトークンを要求するためにそれを使用することができます戻る。あなたのjavascriptのコード次

+0

私はバックグラウンドでサーバーサイドの自動化された問題を探しています。ポップアップを再び表示すると(オートクローズしていても)非常にユーザーフレンドリーではありません。また、javascriptのリダイレクトは厄介です(index.htmlを読み込み、ポップアップしてwelcome.htmlにリダイレクトします) – Jareish

+0

https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/またはログインボタンを表示しないようにするには – Igy

+0

彼はPHP Facebook SDKのヘルプを求めています。「Use Javascript SDK」は本当に役に立ちません。 – Gidogeek

0

入れ...ユーザーが

FB.getLoginStatus(機能(応答){

if (response.authResponse) { 
    fbUserId = response.authResponse.userID; 
    token = response.authResponse.accessToken; 
} else { 
    FB.login(function(response) { 
     if (response.authResponse) { 
      fbUserId = response.authResponse.userID; 
      token = response.authResponse.accessToken; 
     } 
     else { 
      console.log('User cancelled login or did not fully authorize.'); 
     } 
    }); 

    } 

}、真)にログインしていない場合には、ログインポップアップが開きます。

+0

また、事前認証にjavascript sdkを使用することはできません。ユーザーは、javascript sdkを使用してアプリケーションの最後に認証を求められます。彼が数日後に戻ると、私はphp sdkをチェックする必要があります。そうでなければ、初めてアプリを見るユーザーには、ポップアップが表示されます。それは極端にユーザーが不愉快で、変換を失うことになります。 もう一度、あなたはどのように署名したリクエストをjavascript sdkなしで持っているのですか?それはサーバー側であり、anomynousである必要があります(ユーザーは既に権限を与えているので通知しません) – Jareish

関連する問題