2009-10-05 7 views
2

Simplement, je voudrais avoir une application iPhone qui se connecte à un serveur web avec des valeurs de nom d'utilisateur et mot de passe, puis maintient cette connexion, de sorte que l'utilisateur peut poster des données sur le serveur.Comment maintenir l'état de connexion avec un serveur Web dans une application iPhone?

S'agit-il simplement d'un problème d'utilisation de cookies? Si oui, comment effectuez-vous une vérification pour vérifier que l'utilisateur est connecté?

Merci.

Répondre

2

N'est-ce pas une question de comment votre serveur assure la validité et la longévité des connexions? Un serveur peut être très pointilleux et ne pas permettre à un login de continuer s'il semble qu'il a été inactif pendant plus de dizaines de secondes, ou si l'adresse IP a changé. Certains serveurs s'en fichent si vous fournissez la bonne session ou les identifiants de transaction. Ensuite, il y a des cookies. Tout dépend du serveur auquel vous accédez.

Quand vous dites:

Si oui, comment voulez-vous effectuer une vérification pour vérifier l'utilisateur est connecté?

parlez-vous de la façon dont votre application iPhone vérifie ou comment le serveur vérifie? Si à partir de l'iPhone, il devrait essayer quelque chose de rapide comme un appel d'état et si le serveur demande une authentification, alors vous authentifier. Si non, le serveur dépend, vous pouvez supposer que vous êtes déjà authentifié.

Certaines applications effectuent souvent l'authentification, en supposant que la connexion au serveur a expiré. Les autres applications n'aiment pas conserver le mot de passe de l'utilisateur, alors ils essaient rarement de le faire, et quand ils en ont besoin, ils affichent un écran de connexion pour ne pas devoir stocker le mot de passe.

2

Si vous ne disposez pas de contrôle sur le serveur Web et le processus de connexion ici est ce que je l'ai fait dans l'une de mes applications:

[[NSString alloc] initWithContentsOfURL:someURL usedEncoding:&enc error:&error]; 

Cette méthode utilise déjà les cookies, donc si vous êtes connecté Vous resterez connecté. En supposant que le serveur enregistre l'identifiant de session dans un cookie et que l'identifiant de session soit utilisé pour identifier la session d'un utilisateur (ce qui est la manière normale dont quelqu'un implémenterait un site web).

Pour vérifier si un utilisateur est connecté, il vous suffit d'analyser le site Web résultant. La plupart des sites Web redirigent votre demande vers la page de connexion si l'utilisateur ne s'est pas connecté auparavant.

Pour clarifier entendre sont les étapes:

  1. demande Envoyer à un certain url qui a besoin de connexion
  2. Vérifiez le résultat
  3. Si le résultat est la page de connexion -> envoyer des informations d'identification de l'utilisateur et à partir de 1.
  4. Analyser le résultat
Questions connexes