10

facebook.logout(context)がどのように機能するかについて少し混乱しています。

ログアウトを呼び出した後でも、auth_tokenを必要とする情報にアクセスできるためです。では、どうすればそれが可能になるのでしょうか。私はこのトピックに出くわしました、それは私を少し混乱させました:https ://stackoverflow.com/a/6597688/487940

その答えを読んだ後、これが私の質問です。ユーザーが[my]アプリケーションへのアクセスを許可した場合、[公式] facebookアプリケーションにログインすると、常に認証されますか?[my]アプリケーションでfacebook.logout(context)を呼び出そうとしても、彼はログインし、私のアプリケーションはFacebook APIを呼び出すことができますか?」

申し訳ありませんが、この動作を理解できません。

更新: Toridの回答を読んだ後、facebook.logout()関数について混乱しています。ユーザーをログアウトさせない場合、この機能の目的は何ですか?なぜなら、この目的をもう呼ぶ目的がわからないからです。ユーザーはログアウトしません。

4

1 に答える 1

8

ここでは、2つの独立したことが行われます。1)ユーザーがFacebookに対して(権限を使用して)アプリを認証したかどうか、および2)ユーザーがFacebookにログインしているかどうか。

認証は、ユーザーがアプリを初めて使用するときに必要であり、ユーザーが明示的に認証を解除するまで続きます(たとえば、FacebookWebアカウント設定->アプリ->アプリ設定を使用)。

ユーザーがアプリを起動するたびにログインが必要になる場合があります。ただし、シングルサインオン(SSO)を実行しようとするデフォルトのSDK authorize()を使用すると、Facebookアプリがログインしている場合、アプリは自動的にログインし、既存のアクセストークンを使用します。

SSOを使用している場合、ログアウトを実行しても効果はありません。実際のログアウトではFacebookアプリからログアウトする必要があるためです。これは、ユーザーが気に入らない場合があります。

フォームの承認を行うことで、この動作を回避できます

authorize(this, PERMISSIONS, FORCE_DIALOG_AUTH, new LoginDialogListener());

これにより、SSOが回避され、ダイアログログインが強制されます。もちろん、これにより、アプリを起動するたびにユーザーがログインするように強制されます-ログインの詳細/アクセストークンを内部に保存しない限り(SDKが行うことです-ソースを確認してください)。

于 2012-01-09T23:04:06.763 に答える