J'aimerais utiliser une fonction de connexion automatique. Ainsi, lorsque l'utilisateur ouvre l'application, il est délégué à un "écran de connexion". Lorsqu'il se connectait avec succès, il devrait être dirigé vers son compte. J'appelle cela "l'écran de compte". Maintenant, lorsque l'utilisateur redémarre l'application, il devrait directement être dirigé vers son compte, sans voir l'écran de connexion ". P>
La fonction de connexion fonctionne déjà bien dans mon projet (nom d'utilisateur et mot de passe sont enregistrés dans UserDefault), mais chaque fois que je ferme l'application, je dois me connecter à nouveau. Donc, ma question est la suivante: comment auto connectez-vous l'utilisateur? Ou mieux a dit: comment puis-je vérifier si les données (enregistrées dans UserDefault) sont identiques que dans la base de données (MySQL)? P>
4 Réponses :
Vous ajoutez simplement des informations d'identification de connexion à Keychain lorsque l'utilisateur se connecte et ne le supprimez que lorsque l'utilisateur clique sur le bouton de déconnexion. Si l'utilisateur quitte l'application sans déconnexion, les informations d'identification seront toujours dans Keychain et vous pouvez les récupérer lorsque l'utilisateur retourne à l'application. P>
EDIT: strong> Je pense que je dois ajouter une chose de plus..Si votre logique de connexion prend du temps (comme vous vous connectez à l'aide de la demande Web ou quelque chose), placez le code de connexion de votre logique de connexion plutôt que ApplicationDélégate et utilisez tout indicateur d'activité lors du processus de connexion automatique. p>
Merci beaucoup pour cette réponse claire. Que voulez-vous dire avec "logique de connexion"?
@SasChawieland Si votre connexion nécessite une demande / réponse Web, elle prendra du temps. Par logique de connexion, je signifie simplement le processus de connexion réelle.
Tout en enregistrant le nom d'utilisateur et le mot de passe, il est vivement conseillé de sauvegarder dans Keychain plutôt que de Nsuserdefault. Reportez-vous à ce publier pour une meilleure compréhension. P>
J'ai utilisé Keychain, mais pouvez-vous me dire comment autologin avec des données de porte-clés? Il est assez lourd d'obtenir des données de la chaîne pour un autologin.
Je suppose que vous avez utilisé un service Web pour authentifier le mot de passe nom d'utilisateur pour la première fois. Sur chaque lancement consécutif, choisissez le nom d'utilisateur et le mot de passe de votre clé de clavier et utilisez le même service Web pour authentifier l'utilisateur. Lors de l'authentification, vous pouvez afficher un écran de chargement pour notifier à l'utilisateur.
Si vous définissez les détails sur Keychain à l'aide du code [KeyChainitem SetObject: @ "Mot de passe" Foreille: Ksecvaluedata]; [KeyChainitem SetObject: @ "Nom d'utilisateur" Forge: ksecattraccount]; code>, alors vous pouvez récupérer les détails à l'aide de nstring * mot de passe = [keychainitem objetforkey: ksecvaluedata]; Nstring * nom d'utilisateur = [keychainitem objetforkey: ksecattraccount]; code>
Ok Roshit, c'était très utile. Ma question maintenant: comment puis-je vérifier s'il y a des données dans Keychain (si non -> écran de connexion)? S'il y a des données, comment puis-je comparer ces données avec ma base de données?
Sur LaunchOfapp dans Appdelegate, accédez au Keychain et récupérez les détails du nom d'utilisateur et du mot de passe. Si les détails où sont enregistrés dans le porte-clés, ces valeurs seront remplacées. Si les valeurs ne sont pas disponibles, Goto Loginscreen et l'utilisateur invite à entrer des informations d'identification. Si les valeurs sont là, faites votre chèque d'authentification.
Pour répondre à la question: Si vous souhaitez vous connecter automatiquement avec les données de KeyChain, utilisez le cadre gratuit "SFHFeyCeyChaintutils". Il enregistre le nom d'utilisateur, le mot de passe et le serviconame dans Keychain. Si vous souhaitez le récupérer, enregistrez simplement le nom d'utilisateur dans NSUserDefault et vous pouvez facilement obtenir facilement le mot de passe. P>
Ici, nous allons: P>
Comment utiliser sfhfkeychaintutils: strong> http://gorgando.com/blog/technology/iphone_development/simple-iphone-tatutoriel-password-management-utilisateur-the-keychain-by-utilisant-sfhfkeychaintutils a> p>
Soyez prudent lors de l'affichage de la copie et de la collecte de la chaudière / Verbatim répond à plusieurs questions, celles-ci ont tendance à être signalées comme "spammy" par la communauté. Si vous faites cela, cela signifie généralement que les questions sont des doublons, alors signalez-le comme tel.
J'ai utilisé une combinaison de Nsuserdefault et Sskeychain. J'ai utilisé Nsuserdefault pour stocker le nom d'utilisateur Nad Sskeychain pour stocker le mot de passe.
Ceci est le code que j'ai utilisé pour enregistrer les informations d'identification p> ceci est le code que j'ai utilisé pour récupérer les informations d'identification p>
Je n'ai aucune idée de ce que vous essayez de demander ...
Il suffit de définir une balise peut-être appelée «Connexion» Bool, dans UserDefault, puis détectez-la lorsque vous l'aimez
Puisque vous stockez les informations de connexion dans UserDefault, quel est le problème à vérifier si ces informations sont existées et si cela ne doit pas afficher l'écran de connexion?
Excusez-moi, devait me dépêcher. Maintenant, le cas devrait être clair xo. Merci quand même
Vous pouvez essayer le Authnavigation Cadre. Il aide votre organisation à organiser la présentation d'un écran de connexion et prend également en charge la connexion automatique.