2011-10-07 8 views
3

これに似た質問があることは知っていますが、私は問題の解決には向いていません。また、OAuth以外の古いバージョンのSDKも参照しています。ユーザーがFacebookにログアウトすると、JS SDKが機能しなくなる

FacebookとJSの両方のSDKを使用しています。認証はJSを使用して行われ、Facebookが推奨するようにPHP SDKの認証を可能にするクッキーを設定します。

これは、ユーザーが自分のサイトでFacebookからログアウトする(つまり、自分のサイトでFB.logoutメソッドを使用しない)まで、かなりうまく機能します。 auth.statusChange、auth.authResponseChangeまたはauth.logoutメソッドのいずれもすぐにまたは次のページロードで起動されません。しかし、FacebookのサイトをクリックしてもCookieが変更されていることがわかります(ただし、署名付きリクエストの場合はfbsr_xxxxxxxxxxは表示されません)。

私の難しさは、次のページの読み込みに来て、私はユーザーがFacebookからログアウトしたことを知らないということです。私はまだアクセストークンを持つ 'fbsr_xxxxxxxxxx'クッキーを持っているので、PHP SDKを通してAPI呼び出しを続けることができますが、JS SDKは完全に応答しなくなります。メソッドはアクセストークンを持たないことに不満を持ち、コールバック関数を完全に実行しません。

私は何か完全にここで明らかに欠けていますか?私は完全に混乱しているので、どんな助けも本当に大歓迎です。あなたは、アプリケーションからユーザーの詳細情報をアクセスもできるように

FuzzyDunlop

+1

私は誓約への移行以来同じ問題を抱えています。この問題はまだ進んでいますか? – charlie

+0

私は本当に恐れています。 FB.Cookie.clearSignedrequestCookie()メソッドを手動で起動する必要があるかもしれないと思います。また、はい、OAuthバージョンを使用する前にこの問題はありませんでした。 – dmnc

+1

あなたはauth.authResponseChangeコードに問題があったかもしれません。あなたはあなたが使ったことを投稿できますか? \t window.location.reload; FB.Event.subscribe( 'auth.authResponseChange'、機能(応答){ \t警告( '認証REPONSEの変更'):それは私のためにすぐにこのような、実際には非常にシンプルな – Abby

答えて

-1

あなたは、あなたがオフラインアクセス許可を使用して取得することができ、非期限切れのトークンを持っている必要があります場合でも、ユーザーのFacebookからログアウトし、それも作品ユーザーがパスワードを変更しなくても、パスワードを変更した場合は、 の新しいトークンを要求する必要があります。

+0

からの応答に依存しません編集の回答txt spkを削除します。 – Spudley

+0

期限切れでないトークンを持つことで、私の問題ではないPHP APIを使用し続けることができます。私が持っている問題は、ユーザーがFacebookからログアウトしたときにJS SDKが(期限切れのトークンでなくても)動作を停止することですが、これについての通知はありません。 – dmnc

+1

この問題を解決するには、実際にオフラインアクセスが必要かどうかはわかりません。より良い方法があります。これは私にはちょっと残酷すぎるように見えますが、オフラインアクセスでは、基本的にユーザーが寝ている間にデータを管理したいと考えています。 – Abby

関連する問題