我有一个使用AFHTTPRequestOperationManager
使用以下代码执行登录的应用程序:
NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
loginNameField.text, @"username",
loginPasswordField.text, @"password",
uniqueUserToken, @"device_id",
nil];
NSMutableURLRequest* request = [self.operationManager.requestSerializer requestWithMethod:@"POST" URLString:LOGIN_URL parameters:params error:nil];
AFHTTPRequestOperation* operation = [self.operationManager HTTPRequestOperationWithRequest:request success:^(AFHTTPRequestOperation *operation, id responseObject) {
//completion block
}
[self.operationManager.operationQueue addOperation:operation];
我想要做的是,一旦用户使用应用程序登录,就可以在Safari中创建一个cookie,这样用户就可以在浏览器中直接重定向到主站点而不是登录页面。
我尝试使用以下内容,但Safari仍然登陆网站的登录页面:
NSString *myRequestString = [NSString stringWithFormat:@"username=%@&password=%@&device_id=%@", loginNameField.text, loginPasswordField.text, uniqueUserToken];
NSData *myRequestData = [NSData dataWithBytes: [myRequestString UTF8String] length: [myRequestString length ]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:LOGIN_URL]];
[request setHTTPMethod: @"POST" ];
[request setHTTPBody:myRequestData];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[connection release];
[request release];
现在我了解iOS中的应用程序沙盒,因此这里的问题。我已经阅读了其他问题,但我对javaScript
的了解还处于初期阶段。任何帮助将不胜感激。
答案 0 :(得分:0)
我建议您使用NSHTTPCookie或使用UICKeyChainStore等库在KeychainStore中保存用户名和密码。然后在AppDelegate中,您可以检查用户是否已登录。我个人使用第二个选项,因为它会安全地保存数据,直到用户选择退出。但更临时的解决方案是只保存数据NSHTTPCookie
NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL: theURL];
for (NSHTTPCookie *cookie in cookies)
{
[[NSHTTPCookieStorage sharedHTTPCookieStorage] delete or set here];
}