2012-11-19 14 views
6

मैं आधिकारिक और अद्यतन Facebook iOS SDK का उपयोग कर रहा हूं।
हम एक आईपैड पर एक एप्लीकेशन विकसित कर रहे हैं जिसका उपयोग एक घर के वितरण प्रोफाइल का उपयोग कर भौतिक स्टोर के अंदर किया जाता है। जहां ग्राहक अपने फेसबुक खाते में आईपैड पर लॉगिन कर सकते हैं जो सार्वजनिक रूप से उनके शॉपिंग अनुभव को बेहतर बनाने के लिए उपलब्ध है।फेसबुक आईओएस एसडीके लॉगआउट

मेरी समस्या यह है कि जब कोई उपयोगकर्ता अपने फेसबुक खाते में लॉग इन करता है, तो अगला उपयोगकर्ता (ग्राहक) अभी भी पिछले उपयोगकर्ताओं के क्रेडेंशियल्स (You have already authorized xxx, Press "Okay" to continue) के साथ लॉग इन होगा। यह ठीक नहीं है।

क्या वास्तव में लॉगआउट (साइन ऑफ, स्पष्ट प्रमाण-पत्र, या जो भी) पिछले (या वर्तमान) उपयोगकर्ता का कोई तरीका है, तो अगला उपयोगकर्ता अपना उपयोगकर्ता नाम और पासवर्ड भर सकता है।

दुर्भाग्यवश [[FBSession activeSession] closeAndClearTokenInformation] चाल काफी नहीं करता है।

// .... 
[[FBSession activeSession] closeAndClearTokenInformation]; 
[FBSession.activeSession openWithCompletionHandler:^(FBSession *session, 
                 FBSessionState state, 
                 NSError *error) { 
     // More code ... 

    }]; 
// ... 

पुनश्च:

इस कोड का एक हिस्सा अब तक है। The cookie 'workaround' doesn't work for me (स्पष्ट रूप से)

+0

आप उपयोगकर्ता कैसे का प्रमाणीकरण कर रहे? आईओएस, फेसबुक ऐप या सफारी के माध्यम से? सफारी के माध्यम से – ale0xB

+0

। – basvk

उत्तर

8

आपके संदर्भ से, मुझे लगता है कि आपके डिवाइस में फेसबुक ऐप इंस्टॉल नहीं है और न ही आप आईओएस 6 सिस्टम प्रमाणीकरण का उपयोग करने की उम्मीद करते हैं जो सफारी का उपयोग करने के लिए डिफ़ॉल्ट लॉगिन व्यवहार छोड़ देगा। अगर आप सफारी कुकीज़ को साफ़ करना चाहते हैं, तो उसे काम करना चाहिए लेकिन आपके परिदृश्य में एक आसान अनुभव के लिए आपको FBSession openWithBehavior:completionHandler: विधि का उपयोग करना चाहिए और FBSessionLoginBehaviorForcingWebview का व्यवहार निर्दिष्ट करना चाहिए ताकि यह प्रमाणीकरण के लिए इनलाइन वेबव्यू संवाद का उपयोग कर सके।

एक उदाहरण के लिए फेसबुक आईओएस एसडीके में SwitchUserSample देखें क्योंकि नमूना एक ऐप प्रदर्शित करता है जो एकाधिक खातों के बीच टॉगल कर सकता है।

+0

उदाहरणों की जांच करने के बारे में नहीं सोचा था। 'FBSessionLoginBehaviorForcingWebView' व्यवहार का उपयोग सही दृष्टिकोण की तरह लगता है। – basvk

0

इस कोड के साथ प्रयास करें। मुझे लगता है कि यह आपकी मदद करेगा।

FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; 
[login logOut]; 
+1

यह FBSDKLoginManager का नया उदाहरण बनाएगा जिसकी आवश्यकता नहीं है –

0

आप फेसबुक एसडीके 4.1.0 का उपयोग कर रहे हैं, तो सिर्फ bellow विधि कॉल

if ([FBSDKAccessToken currentAccessToken]) { 
    [FBSDKAccessToken setCurrentAccessToken:nil]; 
    [FBSDKProfile setCurrentProfile:nil]; 
}