2015-11-07 87 views
0

我已經整合了Facebook API和我輕鬆登錄,但在從Facebook註銷我的應用程序後,當我再次登錄,然後顯示您已經授權並進入應用程序的主頁。但我想如果我註銷帳戶那麼下次再次需要用戶名和密碼才能使用不同的用戶。facebook登錄與多個用戶

我已經是的,來自Facebook開發人員帳戶的狀態和審查選項生活,但這個問題發生。

回答

1

你的註銷很好我認爲你不清楚當前的Facebook會話,當你點擊註銷按鈕時你必須實現註銷的兩種方法。

FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init]; 
[loginManager logOut]; 

設置currentAccessToken爲零

[FBSDKAccessToken setCurrentAccessToken:nil]; 
[FBSDKProfile setCurrentProfile:nil]; 

爲loginview

- (void)loginButtonDidLogOut:(FBSDKLoginButton *)loginButton { 

    // do like delete the permission, this means you fully logout from facebook 

    [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me/permissions/" 
    parameters:nil 
    HTTPMethod:@"DELETE"] 
startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { 
    NSLog(@"deleted successfully"); 
}]; 


    } 

上述方法清除當前的會話,當您再次單擊Facebook按鈕,它要求新新權限用戶。

如果要清除Safari的Cookie也使用

,僅清除本地FB會話信息,但不是Safari的Cookie。所以,我登錄的用戶後,我清除Safari的Cookie:

NSLog(@"Logged out facebook"); 
NSHTTPCookie *cookie; 
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; 
for (cookie in [storage cookies]) 
{ 
NSString* domainName = [cookie domain]; 
NSRange domainRange = [domainName rangeOfString:@"facebook"]; 
if(domainRange.length > 0) 
{ 
    [storage deleteCookie:cookie]; 
} 
} 
如果您要訪問的多個用戶在同一時間看到示例應用程序的名稱 美味你可以從 here

得到這個程序

+0

我得到這個錯誤,當我添加fbsdkaccess令牌和fbsdkprofile ..'FBSDKAccessToken'的定義必須在需要之前從模塊'FBSDKCoreKit.FBSDKAccessToken'導入。我已經導入正確,/ –

+0

我解決了錯誤,但它不工作我... –

+0

- (void)loginButtonDidLogOut:(FBSDKLoginButton *)loginButton { FBSDKLoginManager * loginManager = [[FBSDKLoginManager alloc] init]; [loginManager logOut]; [FBSDKAccessToken setCurrentAccessToken:nil]; [FBSDKProfile setCurrentProfile:nil]; } 我使用此代碼從Facebook登出。 –