2012-01-03 4 views
0

Je fais une application qui inclut un userlogin, seulement le login d'utilisateur alors seulement il sera redirigé vers la page principale. Mais je veux faire un login de temps comme le login de facebook ou la connexion d'ebay que si l'utilisateur singin, le nom d'utilisateur doit être maintenu, aucune autre connexion n'est nécessaire, mais si l'application supprime de l'iphone alors son ok.now mon application nécessite une connexion lorsque l'application est supprimée de l'iphone memeory (multitâche) .Comment mettre en place une connexion unique pour mon application? Cordialement NipinComment créer une connexion unique pour une application iPhone?

Répondre

5

mots de passe et d'autres données utilisateur sensibles doivent être stockés dans le trousseau. L'API pour le trousseau est simple C et disponible en liant agains le cadre de sécurité.

Cette API est un peu lourde à utiliser. J'utilise généralement l'excellent wrapper Objective-C de Buzz Andersen disponible at github.

Le flux de travail normal pour une application de connexion d'une heure est d'utiliser une start-up similaire à ce pseudo-code:

if (stored password exists) { 
    if (login with stored password succeeds) { 
     exit, we are done 
    } else { 
     remove password from secure storage 
    } 
} 
if (user provides new password) { 
    if (login with user provided password success) { 
     store user provided password in secure storage 
    } 
} 
+0

merci pour votre grande information, mais je suis très nouveau pour ce sdk IOS, alors comment intégrer le code gitbub à mon projet? Dois-je simplement draguer ces fichiers à mon application et importer la classe de mon Appdelegate? – stackiphone

+0

@stackiphone Dans ce cas, glissez simplement les fichiers 'SFHFKeychainUtils.h' et' SFHFKeychainUtils.m' dans votre projet. – PeyloW

+0

monsieur où ai-je mis ce code? Dans viewdidfinishLaunching? Merci – stackiphone

-3

Pour cela Vous devez utiliser NSUSerDefaults pour enregistrer le nom d'utilisateur et les mots de passe. Lors du lancement de l'application, prenez les données de NSUserDefaults et vérifiez avec le code derrière l'écran. Lorsque vous vous déconnectez, supprimez les valeurs de NSUserDefaults.

+1

Non! N'utilisez jamais les valeurs par défaut de l'utilisateur pour stocker des données sensibles, cela est aussi mauvais que de stocker le mot de passe dans un fichier texte clair. Au lieu de cela, utilisez les services de porte-clés. – PeyloW

-3

je crois ce qu'ils voulaient dire est chaque fois que l'application des lancements, faire une vérification qui obtient les valeurs (Nom d'utilisateur, Mot de passe etc) de NSUserDefaults. S'ils existent, n'affichez pas l'écran de connexion et appuyez sur le contrôleur de vue que vous souhaitez afficher. Si ce n'est pas le cas, ouvrez l'écran de connexion et lorsque l'utilisateur saisit ses informations, enregistrez les valeurs à NSUserDefaults une fois.

Pour obtenir les valeurs de NSUserDefaults, vous pouvez:

NSString * username = [[NSUserDefaults standardUserDefaults] valueForKey:@"Username"]; 
+0

Mon intention de poster une réponse était de rendre un peu plus clair comment utiliser 'NSUserDefaults'. –

0

J'utiliseraient le KeyChainWrapper et stocker le mot de passe pour la clé comme nom d'utilisateur. Comme le mot de passe est sensible, il ne doit pas être stocké dans NSUSerDefaults.

Bon lien: http://www.thomasverbeek.com/blog/?p=351

Qu'est-ce que vous pouvez faire est de stocker le nom d'utilisateur dans NSUserDefaults puis rechercher le mot de passe dans KeyChain en fonction du nom d'utilisateur. S'il existe, vous pouvez passer un appel reposant avec le nom d'utilisateur et le mot de passe.

Questions connexes