7
votes

Comment concevoir et mettre en œuvre l'authentification par mot de passe pour iOS?

J'ai ce qui semble être un problème simple, mais je ne trouve pas de solution. J'ai passé des heures à essayer de trouver un exemple qui montre comment créer une vue, permettez à un utilisateur de saisir un mot de passe, d'authentifier le mot de passe et de renvoyer la vue sur une vue désignée. J'ai trouvé beaucoup de bonnes ressources sur des morceaux et des morceaux, mais ils sont tous quelque peu vagues sur la façon d'authentifier le mot de passe, puis envoyez l'utilisateur à une vue désignée.

Cela semble être la meilleure solution à mon problème, ce qui est: j'ai plusieurs pdfs que j'ai besoin de protéger par mot de passe dans mon application iPad.


2 commentaires

quel est ton problème? la chose isélaltostring ou voulez-vous définir / chiffrer?


Quelle copie enregistrée ou enregistrée (espérons-le, hachage) du mot de passe cherchez-vous à authentifier le mot de passe de l'utilisateur? Ce mot de passe serait-il défini et stocké localement?


4 Réponses :


4
votes

en prévision de votre réponse à mon commentaire -

Si vous souhaitez que le mot de passe soit enregistré localement, je le stocke (haché ou sinon) dans le porte-clés, pour comparer contre le mot de passe saisi par l'utilisateur. Plus dans le Apple Docs ici .

Je vous recommanderais de télécharger le projet d'exemple Apple pour un exemple de stockage / de récupération des données du porte-clés.


0 commentaires

9
votes

émetteur1: invite pour le nom d'utilisateur et le mot de passe

présentez une vue modérée. Si la combinaison nom d'utilisateur / mot de passe est correcte, rejeter la vue modale. Vous pouvez également utiliser une alerte avec des champs de texte. P>

émetteur2: stocker le nom d'utilisateur / mot de passe de manière sécurisée p>

Utiliser la chaîne de clé comme suggéré dans l'autre réponse. L'utilisation de la chaîne de clés est aussi simple que d'utiliser Nsuserdefault avec PdkeychainBindingsController de Carlbrown. Vous pouvez le trouver au lien ci-dessous p>

https://github.com/carlbrown/pdkeychainBindingsController p>

modifié pour ajouter des informations demandées dans Commentaire: P>

En supposant que vous utilisiez un contrôleur de visualisation personnalisé pour l'invite de connexion, vous devez faire quelque chose comme celui-ci lorsque vous souhaitez inviter le mot de passe. Il peut être dans votre application Didfinishlaunchingwithoptions. p> xxx pré>

puis dans votre loginviewController, vous devez faire quelque chose comme ça. P>

  PDKeychainBindings *keyChain =[PDKeychainBindings sharedKeychainBindings];
            if ([[keyChain objectForKey:@"User Name"] isEqualToString:userName] && [[keyChain objectForKey:@"Password"] isEqualToString:passWord] ) {
                [self dismissModalViewControllerAnimated:YES];
            }else {
                UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"ERROR" message:@"Wrong User Name and/or Password\nEnter Login Information Again"
                                                               delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
                [alert show];
                [alert release];
                  }


2 commentaires

C'est exactement ce que je veux faire, mais je n'ai pas encore la base de connaissances à mettre en œuvre en fonction de ce que j'ai vu, y compris le lien ici et les autres réponses. Aucune suggestion? Ce code peut-il être créé et acheté puis incorporé dans l'application Acheter? Ou je ne vois tout simplement pas l'arbre pour la forêt et ne pas saisir le flux des actions.


Pouvez-vous en discuter avec moi par email?



0
votes

Cependant, si vous voulez vendre cette application, gardez à l'esprit que Apple dit

L'utilisateur peut définir un numéro d'identification personnel à quatre chiffres (PIN) à empêcher l'utilisation non autorisée de l'appareil, il n'y a donc pas besoin de la utilisateur à être authentifié et il n'y a pas d'authentification ou API d'autorisation dans iPhone OS.

Ceci peut être trouvé dans codage de sécurité Comment


0 commentaires

1
votes

Oliver sur Cocoanetics.com a une très belle mise en œuvre de l'écran de login de sécurité Apple utilise. Regardez la classe PinlockController dans MyAppsales.

https://github.com/cocoanetics/myappsales

Pour le stockage Keychain, j'utilise SFHFeyChainutils. C'est un appel de méthode simple pour stocker et récupérer des mots de passe sécurisés. Mais je pense que les nsuserdefaults standard seraient suffisants pour vos besoins.

(site pratique http://gorgando.com/blog/tag/sfhfkeychainutils ) < / p>


0 commentaires