2013-04-16 4 views
1

Je travaille sur une application ios besoin de communiquer avec le serveur. Lorsque l'utilisateur lance l'application pour la première fois, il est invité à entrer son nom d'utilisateur et son mot de passe. Une fois authentifié, je veux le garder connecté jusqu'à ce qu'il se déconnecte explicitement. Après avoir creusé dans les documents Apple pendant plusieurs heures, je peux vous indiquer deux méthodes pour implémenter l'idée: < 1> utiliser l'authentification http basic/digest. Une fois l'utilisateur authentifié, je sauvegarde le nom d'utilisateur et le mot de passe dans le trousseau de clés. Chaque fois que le serveur requiert une authentification, en mettant en place une connexion : didReceiveAuthenticationChallenge: fonction, l'application peut charger le nom d'utilisateur et mot de passe, et construire juridique NSURLCredential. Certes, cela fonctionnera, mais chaque demande doit s'authentifier une fois et transférer le secret d'utilisateur fréquemment. 2> utiliser http cookie Une fois l'utilisateur authentifié, la réponse du serveur avec un jeton unique dans le cookie. Dépend de la caractéristique The URL loading system automatically sends any stored cookies appropriate for an NSURLRequest. Je ne suis pas sûr si le cookie sera perdu quand l'utilisateur tue l'application.Quelle est la meilleure façon de conserver la connexion à ios app?

Pensez-vous que les deux méthodes sont correctes? quel est le meilleur? Y a-t-il d'autres méthodes pour faire la même chose?

Je remarque que de nombreux clients (twitter/facebook/...) gardent leurs utilisateurs connectés, quelle méthode ils utilisent? Merci; Par ailleurs, j'ai enregistré nom d'utilisateur et mot de passe dans le trousseau, mais pour rester connecté, je pense qu'il y a encore du travail à faire.

+0

Enregistrer votre nom d'utilisateur et mot de passe dans le trousseau de l'appareil. voir ce http://stackoverflow.com/questions/6972092/ios-how-to-store-username-password-within-an-app – Tirth

+0

J'ai enregistré le nom d'utilisateur et mot de passe dans le trousseau, mais pour rester connecté, il y a plus Travail à faire. – xjdrew

Répondre

0

Je ne parle pas du stockage des cookies. Mais lorsque vous ajoutez le nom d'utilisateur et mot de passe à keychain, vous devez clean up trousseau lorsque l'application obtiennent uninstalled. Sinon, il peut rester dans keychain, même après la désinstallation de votre application. Parce que keychain ont le stockage de paires de clés, mais pas de stockage basé sur une application. Vous pouvez utiliser NSUserDefault pour stocker les informations de connexion. Je pense qu'il est une meilleure façon de le faire ..

0

Essayez celui-ci pour porte-clés:

KeyChain sample code

vous pouvez également utiliser NSUserDefault

+1

non nsuserdefaults n'est pas un moyen sécurisé, porte-clé est pour cela .Utilisez le porte-clés –

+0

oui vous avez raison trousseau est le meilleur moyen. –

0

essayez celui-ci et enregistrer votre mot de passe nom d'utilisateur d'authentification NSUserDefaults . C'est fournir globalement dans l'application.

Pour sauvegarder vos données essayer cette

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
[defaults setObject:isValid forKey:@"Username"]; 
[defaults setObject:accessLevel forKey:@"Password"]; 

Et pour les données get essayez celui-ci

NSUserDefaults *defaultsCheck = [NSUserDefaults standardUserDefaults]; 
NSString * userIDCheck = [defaultsCheck objectForKey:@"Username"]; 
NSString *accessLevelCheck = [defaultsCheck objectForKey:@"Password"]; 
+1

Ce n'est pas une bonne idée d'utiliser NSUserDefaults pour le nom d'utilisateur/mot de passe. Au lieu de cela, vous devez utiliser Keychain qui est sécurisé et restera pour votre application même si vous supprimez votre application et l'installez à nouveau. Jetez un oeil à la documentation pour l'utilisation de keychain. – Maziyar

Questions connexes