我正在设计一个应用程序,它使用网络服务,如发布链接和图片。第一个视图控制器检查用户的默认用户名和密码,如果正确,则允许用户登录主视图控制器,但如果不正确,则将用户定向到登录视图控制器(如果是第一次应用程序正在运行它还会将用户定向到登录视图控制器)。
我有不同的视图控制器连接到主视图控制器。例如,其中一个用于将图片发布到网站,另一个用于将链接发布到网络,另一个视图控制器用于更改用户配置文件的偏好。
我正在使用 RestKit API 在网络上发布,这是我用于发布的代码:
- (IBAction)addLinkPressed:(UIButton *)sender {
[RKClient clientWithBaseURLString:@"http://MyWebsite.com"];
NSDictionary* params = [NSDictionary dictionaryWithObjectsAndKeys:
self.linkField.text, @"url",
self.linkTitleField.text, @"title",
self.linkSummaryField.text, @"summary",
nil];
RKRequest *request = [[RKClient sharedClient] post:@"/send_link.php" params:params delegate:self];
[request setUserData:@"sendLink"];
}
对于每个视图控制器,我使用以下方法viewDidLoad
来获得发布身份验证:
- (void)autoLogin {
[RKClient clientWithBaseURLString:@"http://MyWebsite.com"];
[RKObjectManager sharedManager].client=[RKClient sharedClient];
RKParams *parameters = [RKParams params];
[parameters setValue:[[NSUserDefaults standardUserDefaults] objectForKey:@"defaultUsername"] forParam:@"username"];
[parameters setValue:[[NSUserDefaults standardUserDefaults] objectForKey:@"defaultPassword"] forParam:@"password"];
[[RKClient sharedClient] setAuthenticationType:RKRequestAuthenticationTypeHTTP];
RKRequest *request = [[RKClient sharedClient] post:@"/login.php" params:parameters delegate:self];
[request setUserData:@"login"];
}
问题:除了为每个视图控制器登录之外,还有什么方法可以从网站获得发布的身份验证?登录每个视图控制器的问题是,有时记录过程会出错并且不允许用户 POST。我需要一种方法,只要用户输入正确的用户名和密码,它就会一直保持登录状态,直到用户自己注销或删除应用程序。
我发现了这个相对的问题,但它没有那么有帮助,或者我没有很好地理解答案。任何想法或想法将不胜感激。