2015-12-30 11 views
5

ここに問題があります。自分のアプリケーションにログインしてからアプリケーションからログアウトしますが、もう一度ログインしようとすると、下のリンクに画面が表示されます。iOSアプリケーションからログアウトして別のユーザーとしてログインできない

Login Screen

あなたが見ることができるように、私が意図されるもので、他のユーザとログインする機会を得ることはありません。私が実行しようとしました何

は、ログアウトした後、これらの次のメソッドを使用して、ログアウト中のすべてのCookieをクリア:これらの

@IBAction func logout(sender: AnyObject) { 

    //Logged out here 
    let loginManager = FBSDKLoginManager() 
    loginManager.logOut() 

    //This is one method I tried 
    let appDomain = NSBundle.mainBundle().bundleIdentifier! 
NSUserDefaults.standardUserDefaults().removePersistentDomainForName(appDomain) 


    //This is another method I tried 
    for key in NSUserDefaults.standardUserDefaults().dictionaryRepresentation().keys { 
     NSUserDefaults.standardUserDefaults().removeObjectForKey(key) 
    } 


    //And this is the last method I tried 
    var cookie: NSHTTPCookie 
    var storage: NSHTTPCookieStorage = NSHTTPCookieStorage.sharedHTTPCookieStorage() 

    for cookie in storage.cookies! { 
     var domainName: String = cookie.domain 
     var domainRange: Range = domainName.rangeOfString("facebook") 
     if domainRange.length > 0 { 
      storage.deleteCookie(cookie) 
     } 
    } 

} 

どれも私の問題を解決するように見えません。このアプリはFacebook Devアカウントの "開発"モードにあるので、これと何か関係があるかもしれませんが、完全にはわかりません。上記の画像に示されているように、誰かがこれに関する経験を持ち、私たちの問題に対する解決策を知っていますか?

+0

ここでログアウトすると、アプリケーションで現在のセッションが削除されます。あなたが別のユーザーでログインしたい場合は、サファリからログアウトすることを意味するものではありません。最初に、サファリからログアウトし、アプリケーションからログアウトすると、別のアカウントでログインできます。 –

+0

Safariから –

+0

はい、Safariからログアウトしてからアプリケーションからログアウトする必要があります。その後、あなたは新しいユーザー –

答えて

0

ユーザーがFacebookからのアクセス許可の要求をもう一度表示したい場合は、Facebook上のユーザーのプロフィールからそのアプリを削除する必要があります。

Facebook - go to settings

あなたが設定画面にある、あなたのアプリを見つけ、

Facebook - remove app

+1

こんにちは@Eugene Dubinin !!!私も上記のように同じ問題に直面しています。ユーザーがログインボタンを押すと、ログイン画面に行きたい。上の物はログイン画面にナビゲートしていません。親切に私を助けてください。 –

+0

どこを見て回っていますか? –

+0

** Mc **ボタンとして続行中です。 –

1

十字ボタンを押して、Facebookのログインの全体目標は、自分のFacebookアカウントに迅速、シームレスにログインできるようにすることです資格情報を再入力する必要はありません。これを実現するために

、FacebookのSDKとしてはすでにデバイスに保存されている資格情報を、活用しようとします:

  • ログイン情報FacebookアプリからSafariでFacebookのログインに関連する
  • クッキー(直接またはSFSafariViewController
  • システムを介してFacebookは

はあなたがログアウトすると、あなたが実際にのみFacebookのSDKは、トンを忘れたアカウント彼はアプリ内の資格情報(それはトークンをクリアします)。もう一度ログインすると、初めてのように動作し、既存のユーザーが見つかった場合は、それを使用します(Facebook SDKは、通常、デバイスを使用している人が1人いると仮定しています)。 1つのFacebookアカウント)。

Facebook SDKの現在の「お気に入り」のパス(ただし、SDKのバージョン、iOSのバージョン、その他のパラメータによって異なる)はSFSafariViewControllerで、アプリではなくSafariとCookieを共有します。

ユーザーが完全にデバイスからログアウトするようにするには、SafariでFacebook内のログアウトリンク(またはSFSafariViewController)を使用する必要があります。

あなたがプログラム的にそうしたい場合は、SafariやSFSafariViewControllerで、次のURLを開くことがあります。

https://www.facebook.com/logout.php?next=[YourAppURL]&access_token=[ValidAccessToken] 

あなたはSFSafariViewControllerあなたのアプリ/終了に戻るには、カスタムURLスキームを使用する必要がありますしかし、。

+0

私は上記の同じ問題に直面しています。私は 'SFSafariViewController'で手動で試しました。しかし、私はプログラム的に行う方法を知らなかった。あなたは私を導くことができますか? –

関連する問題