sql >> Database >  >> RDS >> Mysql

XCode, authenticatie en NSUserDefaults

Je zit redelijk dicht bij je gedachten. Ik gebruik een vergelijkbare benadering voor mijn gebruikersaanmeldingsproces.

Ik zout en hash momenteel het e-mailadres en wachtwoord in 1 40 char-token. Als de aanmelding succesvol is, sla ik het token op in NSUserDefaults. Ik gebruik dit token voor alle andere webverzoeken die doorgaan totdat de gebruiker uitlogt, waarna ik de standaardinstellingen van de gebruiker verwijder.

Hier zijn een paar fragmenten die ik voor hetzelfde proces gebruik:

// 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. CSV naar Mysql importscript om overeen te komen met velden

  2. Hoe de waarde van een externe sleutel in de mysql-database bij te werken?

  3. Kan geen verbinding maken met MySQL Workbench op mac. Kan geen verbinding maken met MySQL-server op '127.0.0.1' (61) Mac Macintosh

  4. Laravel + Vagrant =Toegang geweigerd voor gebruiker 'root'@'localhost'