0

テストMVCサイトを設定してあり、Facebookの認証システムを使用してユーザーにログインするように設定されています。ユーザーが私のシステムからログアウトすると、Facebookにログインしているユーザーに正しいことが起こるようにするにはどうすればいいですか?(つまり、自分のサイトにアクセスする前にログインした状態に戻します)FacebookのoAuthサービスは、ユーザーが自分のサイトにアクセスした後にFacebookにログインしたままにしておくことはできますか?

NuGetからダウンロードできるFB APIラッパーに依存しています。

私が見ているいくつかの例には、APIを介して呼び出すことができるFacebookのログアウト方法が含まれています。FBはユーザーが自分のサイトからログアウトしたことを知らせます。正しいもの "です。ただし、このメソッドはライブラリ(およびAPI?)から削除されているようです。

「正しいこと」が起こるためには、私が呼び出すべき他の方法がありますか?あるいは、人々が使用するいくつかの回避策ですか?

私は、自分のFBログインを使って自分のサイトにアクセスするように頼んだり、自分のサイトからログアウトした後、FBにログインしたままにしておきます。

下記の回避策(ログアウトURLを手作業で作成)。あなたのURLエンコードに注意してください

答えて

1

Facebook's developer TOS(アイテム#6)によると、ユーザーがあなたのサイトからログアウトしたとき(Facebookを使用してログインしたとき)にFacebookからユーザーをログアウトする必要があります。

は、次のユースケースを考えてみましょう:

ユーザーが公共のコンピュータ(ライブラリ)を経由してサイトにアクセスし、ログインしていないユーザーには利用できない制限された機能にアクセスする(Facebookのログインを使用して)ログインすることを選びます。ユーザーはビジネスを行い、その後ログアウトします。 Facebookからログアウトしないと、それらのアカウントは公共のコンピュータで利用できるようになります。新しいユーザーが最初のユーザーが離脱した後にパブリックコンピューターを使用すると、新しいユーザーは初期ユーザーのFacebook情報にアクセスできます。

NuGetについてはわかりませんが、Facebooks PHP SDKを使用すると、Facebookのlogout関数を呼び出すだけで、次のパラメータとaccess_tokenでURLを生成する必要があります。ユーザーがログアウトリンクをクリックすると、Facebookにリダイレクトされ、ログアウトされ、サイトにリダイレクトされてログアウトプロセスが完了します。

例のログアウトリンク:

https://www.facebook.com/logout.php?next=http%3a%2f%2fextapi.yourhost.com%2flogout&rd=http%3a%2f%2fyourhost.com%2flogout&access_token=AAACRZBIZAGE18BAEyQ8AcmRKGGtmeYlw4MFYjuDHfTlZBSZA3pZAJ5xnKABELBmkOroaxlDsoPgFVHPvvkfZAFRQarCRL0Fhy7UrZCAZAfRFtvwBo4lY4s4X

を説明:

  • は、次の:これにより、ユーザーは、彼らがFacebookのからログアウトされた後にリダイレクトされるリンクである(これはドメインになります
  • rd:これは任意のURLパラメータなので、ユーザーが自分のサイトにリダイレクトされたときに、別のリンク先ページにリダイレクトできます(ログアウト以外ページ)。
  • access_tokenは:あなたは、私はフォーマット、成功せず、(ユーザーがFacebookでのログアウトされていないことにログアウトリンクにリダイレクトしようとした
+0

にユーザーを記録し、そしてあるときaccess_tokenはするFacebookで生成されます – blueberryfields

+0

あなたがログアウトに渡したaccess_tokenが、ログイン時に作成されたaccess_tokenと一致しない場合、Facebookはユーザーをログアウトしません。FacebookのPHP API( 'getLogoutUrl')またはあなた自身でリンクを作成していますか? –

+0

私はアクセストークンの保存されたコピーを使用して、自分でリンクを作成しています – blueberryfields

関連する問題