2012-03-01 6 views
2

私はFacebookにデータを提出するアプリを持っています。ログインに成功し、ログインが正常に完了したときにユーザーの資格情報をユーザーのデフォルトに保存します。iOS SDKバックグラウンドとセッションでのログアウト

私が抱えている問題は、ユーザーがFacebookアプリからログアウトしたとき、またはモバイルSafariを使用しているときを検出する方法がないように思えることです。これは、私のアプリが1人の唯一のユーザーに繋がっていることを意味します。

アプリに「ログアウト」ボタンを入れたくない場合は、ログアウト方法を簡単に呼び出して新しいユーザーが自分のアプリで認証できるユーザーの資格情報を削除できます可能性。

誰かがログインしているかどうかを確認できる方法を知っていますか?そうであればFacebook IDを取得できますか?こうすることで、誰もログインしていない場合や、ログインしているユーザーの資格情報と保存された資格情報が一致しない場合に、再度認証を強制することができます。

おかげ

答えて

1

は、私が問題にしてここに混乱がFBは「(SS-オン)シングルサインオン」を実施しているということだと思います使用することができなく、「シングルサインアウト(SS -でる)"。

SS-Onの仕組みは、以前にアプリにログインしていれば、アプリにトークンが保存されているということです。これは、FBアプリでログアウトした後に別のユーザーとしてログインした場合でも、アプリに以前のユーザーのトークンがまだ残っている場合でも、以前のユーザーデータにアクセスできます。

あなたができることは、バックグラウンドに行くときにあなたのアプリのcloseSessionAndClearTokenです。これはあなたにとって望ましい行動であるかもしれません。これは、あなたのアプリがバックグラウンドからアクティブに戻ってくるすべてのことを意味することに注意してください。SS-Onのドリル全体を毎回繰り返す必要があります。

- (void)applicationDidEnterBackground:(UIApplication *)application 
{ 
    [FBSession.activeSession closeSessionAndClearToken]; 
} 
1

あなたは

if([facebook isSessionValid]) 
{ 
    // 1. Either the user has logged out 
    // 2. Or the user has changed the password 
} 
+0

これは、ユーザーがアプリをバックグラウンドに置いて、Facebookブックを使用してログアウトしてから自分のアプリに戻っても、isSessionValidがtrueを返しても機能しないようです。また、これは、ユーザーがログアウトしてから新しいユーザーがバックグラウンドでログインする可能性については説明していません。 – x0b

+0

Facebookアプリへのログインと「あなたのアプリ」での有効なログインは、2つの異なることです。 – vipinagg

+0

シングルサインオンの全体のポイントは、ログインステータスがそれを使用するすべてのアプリで共有されているということでしたか? http://www.facebook.com/pages/Single-sign-on/108568432501463 – x0b

関連する問題