Mysql
 sql >> Baza danych >  >> RDS >> Mysql

XCode, uwierzytelnianie i NSUserDefaults

Jesteś już całkiem blisko swojego myślenia. Używam bardzo podobnego podejścia do mojego procesu logowania użytkownika.

Obecnie zamieniam i haszuję adres e-mail i hasło do 1 40-znakowego tokena. Jeśli logowanie powiodło się, zapisuję token w NSUserDefaults. Używam tego tokena do wszystkich innych żądań internetowych, które będą przesyłane dalej, dopóki użytkownik się nie wyloguje, kiedy to usuwam domyślne ustawienia użytkownika.

Oto kilka fragmentów, których używam w tym samym procesie:

// 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. Struktury obiektowe w relacyjnych bazach danych

  2. Oblicz głębokość w modelu rodzic-dziecko w MySQL

  3. Liczba całkowita kontra znak dla właściwości rekordu DB

  4. Zobacz granty w MySQL

  5. Jak wstawić wiele wierszy z obszaru tekstowego w MySQL?