2010-08-15 4 views
4

Tout d'abord, pas d'OAuth ou d'autres choses supportées du côté serveur, juste une requête de base de données username-password normale.Comment implémenter la fonctionnalité de connexion dans une application Android en toute sécurité?

Je souhaite implémenter un client android pour le site Web. Mes questions sont:

  1. Comment se connecter en toute sécurité? avec HTTPS?
  2. Comment stocker les informations de connexion de l'utilisateur en toute sécurité dans le téléphone pour que l'utilisateur se connecte sans aucune entrée la prochaine fois.
  3. Si l'utilisateur fait des actions après s'être connecté, comment s'identifier? comment garder la session? Par copier et renvoyer des cookies comme "jsessionid"?
+0

Votre serveur gérer la session utilisateur? –

Répondre

0
  1. HTTPS est évidemment le meilleur choix que le nom d'utilisateur et mot de passe sera crypté entre le terminal et le serveur (par exemple, si l'utilisateur utilise l'aéroport Wi-fi leurs informations d'identification ne peuvent pas être « reniflé »)
  2. Vous pouvez enregistrer le mot de passe sur l'appareil en SharedPreferences en utilisant PreferenceManager.getDefaultSharedPreferences() et y accéder plus tard dans votre code automatiquement. Vous pouvez fournir une option permettant à l'utilisateur d'effacer le mot de passe. Sur les appareils non-localisés, aucune autre application ou appareil ne peut accéder au stockage privé de votre application pour que les données soient sécurisées. Sur les appareils enracinés, il est accessible, mais la sécurité est l'un des inconvénients de l'enracinement
  3. Cela dépend vraiment du serveur. La plupart des sites Web utilisent un cookie phpsessionid ou jsessionid. Dans ce cas, voir Android Http get Session Cookie et How do I make an http request using cookies on Android?

OAuth est bien sûr préféré parce que cela empêche l'application réelle de stockage/ayant accès au serveur directement (au lieu, il est fondamentalement un cookie à long terme)

Questions connexes