簡體   English   中英

使用 Facebook ios SDK 在應用程序中注銷 Facebook

[英]Logout of Facebook in app using Facebook ios SDK

我已經在我的應用程序中集成了 Facebook 登錄,因此用戶可以使用我的應用程序帳戶和 Facebook 登錄並執行相應的操作。對於 Facebook 集成,我添加了 Facebook SDK。現在在我的應用程序中單擊注銷按鈕時,它必須清除所有Facebook 帳戶的憑據。我去了:

-(IBAction)btnlogOutClicked:(id)sender
{
  [appDelegate fbDidlogout]; 
}
-(void)fbDidlogout
{
    FBSession* session = [FBSession activeSession];
    [session closeAndClearTokenInformation];
    [session close];
    [FBSession setActiveSession:nil];


}

但是當我再次單擊按鈕時,我直接重定向到我的帳戶,而無需轉到 Facebook 登錄頁面。

如何退出 Facebook?

使用新的 Facebook SDK 登錄工具包,只需在下面寫下一行就可以了。

[[FBSDKLoginManager new] logOut];

如果使用 swift,請確保有必要的導入

import FBSDKLoginKit

func logout() {
    FBSDKLoginManager().logOut()
}

對於注銷,你應該試試這個

您可以在viewDidLoad方法中的導航控制器(右上角)上添加注銷按鈕

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] 
                                    initWithTitle:@"Logout"
                                    style:UIBarButtonItemStyleBordered
                                    target:self
                                    action:@selector(logoutButtonWasPressed:)];

上面添加的按鈕動作方法

-(void)logoutButtonWasPressed:(id)sender {
    [FBSession.activeSession closeAndClearTokenInformation];
}

希望對你有幫助!

參考

編輯:

正如你問為什么它不要求用戶名和密碼,所以原因是:

當我們在我們的應用程序中集成 Facebook SDK 並嘗試登錄時,它會自動檢查兩個地方(以確保我們已經登錄 Facebook)

  1. 首先它會檢查我們是否已經登錄到安裝在此設備上的 Facebook Native 應用程序。

  2. 然后它檢查我們是否在設備設置中保存了我們的 Facebook 用戶名和密碼。

如果兩個地方我們都沒有登錄,那么它會在應用程序中詢問用戶名和密碼

您可以在設備設置中檢查 Facebook 帳戶設置,如下面的屏幕截圖所示,

按主頁按鈕 --> 設置 --> Facebook

在此處輸入圖片說明

FBSDK 是這樣注銷的:

  [FBSession.activeSession closeAndClearTokenInformation];
  FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
  [login logOut];

如果使用 swift 3 或 4:

var loginManager = LoginManager()

當需要執行某些操作以注銷時粘貼此代碼

loginManager.logOut()

在你的postButtonClicked寫下 if else :

-(void)postButtonClicked
{

    _session = [[FBSession sessionForApplication:kApiKey secret:kApiSecret delegate:self] retain];
    [_session resume];

    posting = YES;
    showSlideShow = 1;

    if (_facebookName != nil)
    {
        [self logoutButtonClicked];
    }
    if (![_session isConnected])
    {
        self.loginDialog = nil;
        _loginDialog = [[FBLoginDialog alloc] init];
        [_loginDialog show];
    }
    else {
        self.loginDialog = nil;
        _loginDialog = [[FBLoginDialog alloc] init];
        [_loginDialog show];
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM