Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

XCode, Authentication và NSUserDefaults

Bạn đang khá gần với suy nghĩ của mình. Tôi sử dụng một cách tiếp cận rất giống với quy trình đăng nhập người dùng của tôi.

Tôi hiện đang muối và băm email và mật khẩu thành 1 mã thông báo 40 char. Nếu đăng nhập trả về thành công, tôi lưu mã thông báo vào NSUserDefaults. Tôi sử dụng mã thông báo này cho tất cả các yêu cầu web khác trong tương lai cho đến khi người dùng đăng xuất, tại thời điểm đó tôi xóa mặc định của người dùng.

Dưới đây là một vài đoạn mã tôi sử dụng cho cùng một quy trình:

// see if a login already exists
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
self.token = [defaults stringForKey:@"token"];

// if the token is nil/blank, launch login view
if(self.token == nil || [self.token isEqualToString:@""]) {
    [self loadStartView];
    return;
}

// build the request to update status
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyNever];
NSString *stringData = [NSString stringWithFormat:@"<your api string here"];
NSString *requestData = stringData;
NSData *myRequestData = [NSData dataWithBytes: [requestData UTF8String] length: [requestData length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: [NSURL URLWithString:[NSString  stringWithFormat:@"<your url request here>"]]];
[request setHTTPMethod: @"POST"];
[request setHTTPBody: myRequestData];
NSData *jsonData = [NSURLConnection sendSynchronousRequest: request returningResponse: nil error: nil];
NSString *json = [[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding] autorelease];
NSDictionary *payloadData = [json JSONValue];

[request release];

if([[payloadData objectForKey:@"success"] boolValue]) { // this is designed around my api, but you get the idea
    //NSLog(@"updateStatus: %@", payloadData);
    // updates the api version for every call
    [defaults setObject:self.token forKey:@"token"];
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql - tôi có thể truy vấn có bao nhiêu connect_errors mà một máy chủ nhất định đã cung cấp không?

  2. MyBatis enum sử dụng

  3. Tải lên cơ sở dữ liệu mysql lớn trên AWS RDS bằng cách sử dụng putty - 'Máy chủ MySQL đã biến mất'

  4. Kết nối Tomcat / Hibernate với MySql không thành công với lỗi liên kết Truyền thông &Quyền bị từ chối

  5. So sánh hai phạm vi ngày trong cùng một bảng