2015-12-30 20 views
5

Vì vậy, đây là vấn đề của tôi. Tôi đăng nhập vào ứng dụng của mình, sau đó đăng xuất khỏi ứng dụng của mình, nhưng khi tôi cố gắng đăng nhập lại, tôi nhận được màn hình trong liên kết bên dưới.Không thể đăng nhập với tư cách người dùng khác sau khi đăng xuất khỏi ứng dụng iOS

Login Screen

Như bạn thấy, tôi không có được cơ hội để đăng nhập với người dùng khác, đó là những gì được dự định.

Những gì tôi cố gắng làm là đăng xuất và sau đó xóa tất cả các cookie trong logout sử dụng các phương pháp sau đây:

@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) 
     } 
    } 

} 

Không ai trong số những dường như để giải quyết vấn đề của tôi. Ứng dụng này đang ở chế độ "Phát triển" trong tài khoản Facebook Dev nên có thể có liên quan đến điều này, nhưng không hoàn toàn chắc chắn. Có ai có bất kỳ kinh nghiệm với điều này và biết các giải pháp cho vấn đề của chúng tôi, như thể hiện trong hình trên.

+0

Đăng xuất tại đây nghĩa là xóa phiên hiện tại trong ứng dụng của bạn. điều đó không có nghĩa là bạn cũng đăng xuất khỏi safari nếu bạn muốn đăng nhập với người dùng khác, sau đó trước tiên bạn đăng xuất khỏi safari và đăng xuất khỏi ứng dụng của bạn, sau đó nó cho phép bạn đăng nhập bằng tài khoản khác nhau –

+0

Làm cách nào để thực hiện việc này từ Safari? –

+0

có, bạn cần đăng xuất khỏi safari rồi đăng xuất khỏi ứng dụng. sau đó bạn có thể đăng nhập từ người dùng mới –

Trả lời

0

Nếu bạn, với tư cách là người dùng, muốn xem lại yêu cầu quyền từ Facebook, bạn nên xóa ứng dụng khỏi hồ sơ của người dùng trên Facebook.

Facebook - go to settings

Khi bạn đang ở màn hình cài đặt, tìm ứng dụng của bạn và nhấn nút chéo

Facebook - remove app

+1

Xin chào @Eugene Dubinin !!! Tôi cũng phải đối mặt với cùng một vấn đề, như đã đề cập ở trên. Tôi muốn đi màn hình đăng nhập, khi người dùng nhập vào nút đăng nhập. Điều trên không hướng đến màn hình đăng nhập. Vui lòng giúp tôi. –

+0

Nó sẽ điều hướng bạn ở đâu? –

+0

Đang điều hướng dưới dạng nút ** Tiếp tục bằng nút Mc **. –

1

Mục tiêu toàn bộ của Facebook đăng nhập là để cho phép nhanh chóng, đăng nhập liền mạch vào tài khoản Facebook của bạn mà không phải nhập lại thông tin đăng nhập.

Để đạt được điều này, Facebook SDK sẽ cố gắng tận dụng thông tin đã được lưu trữ trên thiết bị, có thể bao gồm: thông tin

  • đăng nhập từ ứng dụng Facebook
  • cookie liên quan đến Facebook đăng nhập trong Safari (trực tiếp hoặc thông qua hệ thống SFSafariViewController)
  • tài khoản Facebook

Khi bạn đăng xuất, bạn thực sự chỉ có SDK Facebook quên t thông tin đăng nhập của anh ấy trong ứng dụng (nó xóa mã thông báo). Khi bạn đăng nhập lại, nó hoạt động như lần đầu tiên bạn làm, và nếu nó tìm thấy một người dùng hiện có, nó sẽ sử dụng nó (SDK của Facebook làm cho - thường hợp lệ - giả định rằng có một người sử dụng thiết bị, và họ có một tài khoản Facebook duy nhất).

Đường dẫn "yêu thích" hiện tại cho SDK Facebook (mặc dù thay đổi với phiên bản SDK, phiên bản iOS và các thông số khác) là SFSafariViewController, chia sẻ cookie với Safari chứ không phải với ứng dụng của bạn.

Nếu bạn muốn người dùng đăng xuất hoàn toàn trên thiết bị, họ sẽ phải sử dụng liên kết đăng xuất trong Facebook trong Safari (hoặc SFSafariViewController).

Nếu bạn muốn làm đó theo chương trình, bạn có thể mở các URL sau trong Safari hay một SFSafariViewController:

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

Bạn sẽ phải sử dụng một chương trình URL tùy chỉnh để quay trở lại ứng dụng của bạn/thoát khỏi SFSafariViewController , Tuy nhiên.

+0

Tôi phải đối mặt với cùng một vấn đề trên. Tôi đã thử bằng tay trong 'SFSafariViewController'. Nhưng, tôi không biết làm thế nào để làm theo chương trình. Bạn có thể hướng dẫn tôi không ?? –

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