6

Tôi vừa đại tu hệ thống mã hóa của mình để sử dụng facebook-ios-sdk 3.0 mới (từ phiên bản trước, 2.x hoặc whatnot).Di chuyển mã thông báo truy cập hiện có sang Facebook iOS SDK 3.0

Mọi thứ hoạt động tốt, cho đến khi tôi nhận ra mình không tính đến người dùng đã cấp quyền cho ứng dụng/đăng nhập với triển khai SDK trước đó. Vì vậy, tôi đã cố gắng kiểm tra để xem nếu accessToken được lưu trong NSUserDefaults, và nếu như vậy, thực hiện cuộc gọi để mở một phiên:

if ([[NSUserDefaults standardUserDefaults] objectForKey:@"FBAccessTokenKey"] && 
     [[NSUserDefaults standardUserDefaults] objectForKey:@"FBExpirationDateKey"]) { 
     [FBSession openActiveSessionWithPermissions:permissions 
             allowLoginUI:allowLoginUI 
            completionHandler:^(FBSession *session, 
                 FBSessionState status, 
                 NSError *error) { 
     // deal with state change 
     } 

giả định của tôi là người dùng sẽ không cần phải chuyển đổi ứng dụng nhanh cho SSO, vì họ đã có. Tuy nhiên, đó thực sự là những gì sẽ xảy ra.

Tôi không muốn mọi người dùng hiện có cần phải đăng nhập lại khi nâng cấp.

Có ai đã nâng cấp thành công mà không phải đăng nhập lại không?

Cảm ơn

Trả lời

2

Tôi đã nâng cấp một ứng dụng với facebook SDK 3.0 và nó hoạt động tốt. Facebook SDK xử lý mã thông báo, nhưng bạn vẫn có thể truy cập accessToken.

Bạn có thể đạt được nó bất cứ lúc nào như vậy:

NSString *accessToken = [FBSession activeSession].accessToken; 

này sẽ trả lại accessToken hoặc một con số không nếu không có dấu hiệu được thiết lập. Bạn thậm chí có thể xác định một bộ quy tắc bộ nhớ đệm mã thông báo trên phiên. Thưởng thức.

Các vấn đề liên quan