2015-06-02 6 views
7

में उपयोगकर्ता में साइन इन करने के लिए कनवर्ट करते समय अवैध सत्र टोकन IOS पर स्विफ्ट का उपयोग कर रहा हूं।अज्ञात उपयोगकर्ता को parse.com

मेरे ऐप में पोस्ट की एक सूची है। आप गुमनाम रूप से पढ़ सकते हैं लेकिन आपको पोस्ट करने के लिए साइन अप करना होगा।

जब आप ऐप खोलते हैं तो आपको एक अनाम खाता मिलता है। मैं AppDelegate

PFUser.enableAutomaticUser() 
PFUser.currentUser()?.incrementKey("RunCount") 
PFUser.currentUser()?.saveInBackground() 

में निम्नलिखित डाल रहा से कोड मिला: https://www.parse.com/docs/ios/guide#users-anonymous-users

जब आप पोस्ट करने के लिए जाना मैं तुम्हें

let user = PFUser.currentUser() 
user?.username = displayNameTextField.text 
user?.password = passwordTextField.text 
user?.email = emailTextField.text 
user!.signUpInBackgroundWithBlock { ... } 

यह सफल होता है के लिए साइन अप किया है। मैं सर्वर पर अद्यतन किया जा रहा उपयोगकर्ता देख सकते हैं। हालांकि मुझे 20 9 त्रुटि मिलती है: [त्रुटि]: अमान्य सत्र टोकन (कोड: 20 9, संस्करण: 1.7.4)

मैंने सत्र-सत्र को देखने और प्रत्येक चरण में इसे प्रिंट करने का प्रयास किया है और यह वही रहता है। मैंने सुना है कि जब कोई उपयोगकर्ता लॉग आउट करता है तो सत्रटोकन्स को अमान्य कर दिया जाता है लेकिन मैंने सोचा कि मैंने अभी उपयोगकर्ता को साइन इन किया है और नहीं। सत्रित क्यों अमान्य है?

मैंने उपयोगकर्ता को वर्तमान उपयोगकर्ता के रूप में PFUser.bcome() सत्र सत्र का उपयोग करके सेट करने का प्रयास किया है लेकिन यह या तो काम नहीं करता है।

मैं स्पष्ट रूप से कुछ दिख रहा हूं लेकिन मुझे पता नहीं लगा सकता कि क्या। किसी भी मदद की बहुत सराहना की है।

उत्तर

11

एक ही समस्या मेरे लिए हो रहा शुरू कर दिया, और मैंने महसूस किया कि यह एप्लिकेशन सेटिंग में इस विकल्प को सक्षम करने की वजह से था:

Revoke existing session tokens when user changes password - YES/NO 

मुझे लगता है यह एक गुमनाम पर एक पासवर्ड सेट करने के एक अनपेक्षित पार्श्व प्रभाव होता है उपयोगकर्ता - मुझे नहीं लगता कि इस मामले में सत्र टोकन को रीसेट करने की कोई वजह नहीं है।

उम्मीद है कि यह तय किया जाएगा, लेकिन साइन-अप विधि सफल होने के बाद लॉग इनविथ उपयोगकर्ता नाम विधि को कॉल करना है।

+0

धन्यवाद। चालाक क्या मैं पूछ सकता हूं, क्या आपने शुरू किया "नई परियोजना" या "मौजूदा परियोजना" चुनें? "नई परियोजना" आपको एक खाली एक्सकोड परियोजना प्रदान करती है। "मौजूदा परियोजना" आपको अपने मौजूदा एक्सकोड प्रोजेक्ट में पार्स फ्रेमवर्क जोड़ने के लिए एक गाइड देती है। मैंने साथ शुरुआत की एक मौजूदा परियोजना, लेकिन मैंने अभी आपके समाधान का परीक्षण करने के लिए समस्या को पुन: उत्पन्न करने की कोशिश की और "नई परियोजना" के साथ शुरू किया और मैं त्रुटि को पुन: उत्पन्न नहीं कर सकता। –

+0

व्यक्तिगत रूप से मैं हमेशा अपने खाली एक्सकोड प्रोजेक्ट से शुरू करता हूं और 'मौजूदा परियोजना' का उपयोग करके पार्स जोड़ता हूं। विधि। इसमें कोई भी नहीं होगा हालांकि समस्या पर mpact - जिस सेटिंग के बारे में मैं बात कर रहा हूं वह www.parse.com पर आपके ऐप के लिए "सेटिंग्स/सामान्य" अनुभाग में है। मैंने रिक्त स्टार्टर प्रोजेक्ट में इस मुद्दे को दोबारा बनाया है और इसे पार्स के लिए एक बग के रूप में प्रस्तुत किया है। – antsyawn

0

आप लॉगिन सही ढंग से कार्यान्वित नहीं कर रहे हैं, केवल वर्तमान में लॉग इन उपयोगकर्ता को दिखाने के इस

func login() { 
    var user = PFUser() 
    user.username = "myUsername" 
    user.password = "myPassword" 
    user.signUpInBackgroundWithBlock { 
    (succeeded: Bool, error: NSError?) -> Void in 
    if let error = error { 
     let errorString = error.userInfo?["error"] as? NSString 
     // Show the errorString somewhere and let the user try again. 
    } else { 
     // Hooray! Let them use the app now. 
    } 
    } 
} 

कोड let user = PFUser.currentUser() प्रयास करें।

तुम भी पार्स के साथ प्रमाणित करने से पहले आप किसी भी अनुरोध बनाने के कर सकते हैं यह करने के लिए सबसे अच्छी जगह समारोह अंदर appDelegate में है didFinishLaunchingWithOptions

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
     Parse.setApplicationId("Your Id go Here", clientKey: "Your clientKey go here") 
    return true 
} 

आईडी एक के लिए मान nd क्लाइंटकी पार्स में उपलब्ध है और आपके accont

के लिए अद्वितीय है, मुझे आशा है कि आपकी मदद करें, शुभकामनाएँ!

+0

धन्यवाद लेकिन यह मुझे एक ही परिणाम देता है। अमान्य सत्र टोकन। –

+0

मैं उत्तर संपादित करता हूं मुझे लगता है कि आप एक चरण – Icaro

+0

याद कर रहे हैं धन्यवाद लेकिन मैं पहले से ही पार्स के साथ प्रमाणित हूं। मुझे आश्चर्य है कि यह एक बग है या नहीं। –

संबंधित मुद्दे