2011-05-20 25 views

回答

0

我也經歷過同樣的事情,但我認爲這不是一個錯誤,但令人困惑。

Facebook在移動Safari中放置了一個cookie,它指的是有效會話或訪問令牌。如果您使用Facebook庫註銷,它將清除訪問令牌以及未在移動Safari中使用的所有webview cookie。其實你不能用代碼來做到這一點。現在,如果您回來並且移動Safari瀏覽器打開,仍然有一個有效的會話,並且您無需輸入憑據即可再次登錄。

您可能會提出一個錯誤,詢問Facebook是否可以使訪問令牌服務器端無效。

+0

OKk,謝謝.... – 2011-05-20 06:48:42

9

我使用的圖形API .....

- (IBAction)loginButtonPressed:(id)sender { 

    NSString *client_id = @"dsfgdgfgfgdfgvdfg"; 

    //alloc and initalize our FbGraph instance 
    self.fbGraph = [[FbGraph alloc] initWithFbClientID:client_id]; 

    //begin the authentication process..... 
    [fbGraph authenticateUserWithCallbackObject:self andSelector:@selector(fbGraphCallback:) 
         andExtendedPermissions:@"user_photos,user_videos,publish_stream,offline_access,user_checkins,friends_checkins"]; 
} 


- (void)logOutButtonPressed { 

    NSLog(@"logout"); 

    fbGraph.accessToken = nil; 
    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]; 
     } 
    } 

    [self loginButtonPressed:nil]; 
} 

,該代碼工作FINE..TRY本

+0

@Pallavi這是否真的刪除移動Safari瀏覽器中的cookie?我之前看過這個代碼,並且調試了一下,但無濟於事。 – 2011-05-20 06:56:16

+0

我沒有使用移動Safari,登錄是網絡視圖,我給按鈕註銷。 – iProgrammer 2011-05-20 07:00:31

+0

@Pallavi我認爲這樣可行,但是如果您使用Facebook庫中的一個,它將啓動移動Safari,這是讓用戶登錄的更加信任的方式:應用程序無權訪問憑據,在webView中可以訪問這些。 – 2011-05-20 07:05:53