需要使用iOS SDK在我的服务器上使用JSON对用户进行身份validation

我现在只用了几个星期的时间就可以开始使用iOS应用程序,所以请耐心等待。 我想我的应用程序的第一个屏幕是一个电子邮件地址和密码login。 我得到的观点设置,但我只是不知道什么是最好的方式来存储身份validation。

authentication本身将被处理服务器端。 当用户input他们的电子邮件和密码时,它将运行连接到我的服务器,并返回JSON,如果失败或不。 如果成功,我会回报我所需要的。

问题是,我应该存储哪些信息以及在哪里存储? 我应该将他们的用户名和密码存储为md5string吗? 然后,每次我打电话给服务器,我都可以传递他们的用户ID和md5string来validation他们是否有权限。 这有意义吗?

是的,您应该将凭据存储在设备上。 这样,当会话在服务器上到期时,用户可以立即重新authentication。 (请记住,这比每次强制用户login都要安全,因为如果用户丢失了他的电话,任何人都可以访问他的帐户。)

只需将电子邮件地址和密码存储在SQLite表,plist,文本文件或任何你想要的。 即使没有其他应用程序能够访问您存储的文件,也许最好encryption密码。

编辑:

顺便说一句,你不一定要把凭据传递给每一个请求的服务器。 我不知道你在服务器端使用的是什么,但是你可以设置它来使用会话,所以用户在重新authentication之前会保持一段时间。 以下是我用来发送凭据的一些代码:

NSURLConnection *connection; NSString *url = [NSString stringWithFormat:@"http://example.com/service/authenticate.ashx"]; NSString *username = [self.usernameField.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSString *password = [self.passwordField.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSMutableString* requestURL = [[NSMutableString alloc] initWithString:url]; NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: [NSURL URLWithString: [NSString stringWithString:requestURL]]]; [request setHTTPMethod: @"POST"]; [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"]; [request setHTTPBody:[[NSString stringWithFormat:@"username=%@&password=%@", username, password] dataUsingEncoding:NSUTF8StringEncoding]]; connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 

该NSURLConnection对象将pipe理cookie并保持用户login,所以你可以使用它来不断发送请求到服务器,直到会话过期。