2

:ホーム・ページのロードでFB.loginがログアウトCookieを削除しないのはなぜですか?私はFacebookの認証ロジックに問題が持っている

  1. を、私はgetLoginStatus()を呼び出すと、私は"connected"を得れば、私は自分のアカウントページにユーザーをリダイレクトします。そうでない場合、ユーザーはFB.login()を呼び出すログインボタンをクリックすることができます。
  2. ユーザーがログインしてホームページに戻ると(フルページロード)、getLoginStatus()が返され、期待通りに"connected"が返され、ユーザーはアカウントページに戻ってきます。
  3. ただし、ログインしたユーザーがFB.logout()を呼び出して手順1〜2を繰り返すと、2番目の手順では常に"unknown"ログインステータスが返されます。だから、FB.logout()は基本的に私のバウンスロジックを破壊する。

私は、ログイン/ログアウト・コールの仕組みをチェックし、FB.logout()が適切な状態を返すからブロックgetLoginStatus()ことを1年間の期限付きfblo_<appId> Cookieを作成します表示されます。これは、私が理解できる、人々をログアウトさせておくための実際の仕組みのようです。私が理解できないのは、成功したFB.login()コールでこのクッキーが削除されないのはなぜですか?

+0

これらのCookieが設定されているパスを確認しましたか。 – CBroe

+0

私のドメイン全体に '/'パスで設定されているログアウトクッキーは 'fblo_'です。それで、それは1年間クリアされていないと考えると、かなり粘着性があります。 – krukid

+0

これにはバグ/ディスカッションがありますか? –

答えて

0

私は数日前にこれを経験していたが、私は問題を見ていないよ)をプログラムFB.login()とFB.logout(両方のコールバック関数でクッキーfblo_<appid>を削除することによってそれを

+0

あなたは確かにlogout()でそれをしたくないです。これを試してください:facebookにログインしてください。通常のユーザーのように、あなたのウェブサイトであなたのアプリを認証することができます。その後、facebook.comにログインしてアプリを開く前に使ったことのないブラウザで。既に接続しているため、自動的にログインします。この時点でログアウトすると、クッキーはそのブラウザでのみ設定されます。それを削除すると、自動的に再度ログインします。 –

-1

を自分自身を固定これ以上。 Facebookのに

人がログインすると、その後、アプリにログインする:いずれの場合も

はテストがしたときに、これらの異なるシナリオを検討していることを確認します。あなたのアプリからログアウトすると、その人はまだFacebookにログインしています。

アプリのログインフローの一部として、あなたのアプリとFacebookにログインします。あなたのアプリからログアウトすると、ユーザーはFacebookからもログアウトされます。

ユーザーは他のアプリのログインフローの一部として別のアプリとFacebookにログインし、アプリにログインします。いずれかのアプリからログアウトすると、ユーザーはFacebookからログアウトされます。

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


デバッグのヒント:あなたは左側のパネルでクッキーを選択し、その名前でフィルタリングするために、検索ボックスにfbloを入力することができChromeで[アプリケーション]タブで

FB.loginに電話して認証に成功すると、fbloのCookieが表示されなくなるので、この問題は修正されたと思います。

enter image description here

+0

「テストユーザー」機能を使用してテスト用のテストアカウントを作成します: 'https://developers.facebook.com/apps/ {YOUR-APP-ID}/roles/test-users /' –

関連する問題