यह काफी हद तक निर्भर करता है कि आप सर्वर की तरफ से चीजों को कैसे कार्यान्वित कर रहे हैं, लेकिन हमने इसे मटेटे के तीसरे विकल्प का उपयोग करके कार्यान्वित किया। मेरे पास devise का उपयोग कर रेल 3.1 कार्यान्वयन है। लॉगिन का मार्ग /users/login.json है।सबसे पहले इस तरह के कोड के साथ लॉगिन करने के लिए JSON शरीर का निर्माण:
NSMutableDictionary *loginDictionary = [NSMutableDictionary dictionary];
NSMutableDictionary *usernamePasswordDictionary = [NSMutableDictionary dictionary];
[usernamePasswordDictionary setObject:username forKey:@"email"];
[usernamePasswordDictionary setObject:password forKey:@"password"];
[loginDictionary setObject:usernamePasswordDictionary forKey:@"user"];
NSData *data = [NSJSONSerialization dataWithJSONObject:loginDictionary options:0 error:&error];
जो इस JSON पैदावार:
{"user":{"password":"blahblahblah","email":"[email protected]*****.com"}}
मैं इस तरह कोड के साथ एक पोस्ट URL अनुरोध भेजने:
NSString *postUrlString = [NSString stringWithFormat:@"%@users/login.json", kServerAPIBaseURL];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:postUrlString] cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:kTimeoutInterval];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-type"];
[request setHTTPBody:data];
प्रतिक्रिया जो मुझे वापस मिलती है वह JSON है। हम सर्वर साइड कॉन्फ़िगर session_auth_token वापस जाने के लिए:
{
admin = 1;
"created_at" = "2012-01-25T00:15:58Z";
"current_sign_in_at" = "2012-04-04T04:29:15Z";
"current_sign_in_ip" = "75.163.148.101";
email = "[email protected]******.com";
"encrypted_password" = "*****";
"failed_attempts" = 0;
id = 1;
"last_sign_in_at" = "2012-04-03T03:37:18Z";
"last_sign_in_ip" = "75.163.148.101";
"locked_at" = "<null>";
name = "Joe Smith";
"remember_created_at" = "2012-03-29T20:35:43Z";
"reset_password_sent_at" = "<null>";
"reset_password_token" = "<null>";
"session_auth_token" = "3FRgX6CYlzQJGC8tRWwqEjFaMMFKarQAYKTy3u84M0U=";
"sign_in_count" = 145;
status = 1;
"unlock_token" = "<null>";
"updated_at" = "2012-04-04T04:29:15Z";
}
हम जानते हैं कि session_auth_token की दुकान और फिर कुछ इस तरह वापस भेज एक शीर्षक में प्रत्येक अनुरोध के साथ:
NSMutableURLRequest *postRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[self postUrlString]]...
[postRequest setHTTPMethod:@"POST"];
[postRequest setValue:@"application/json" forHTTPHeaderField:@"Content-type"];
[postRequest setValue:[self sessionAuth] forHTTPHeaderField:@"X-CSRF-Token"];
[postRequest setHTTPBody:data];
पैरामीटर [self sessionAuth]
शामिल है कि session_auth_token।
मुझे स्पष्टीकरण की आवश्यकता होने पर मुझे बताएं।
स्रोत
2012-04-04 04:53:48
HI क्या आपको कोई समाधान मिला है, कृपया – santosh