IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

Webview Perte de Cookie/Session


Sujet :

Composants graphiques Android

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 53
    Par défaut Webview Perte de Cookie/Session
    Bonjour,

    Mon application Android se compose d'une Webview et d'une languette avec bouton pour lancer le scan d'un QRcode avec la librairie "zxing".

    Lorsque l'application démarre l'utilisateur est dirigé, via la Webview vers un site distant ("http://monSiteWeb.fr"). Sur celui-ci l'utilisateur à la possibilité de s'identifier avec un login et mot de passe. Ces informations sont contenues dans un cookies. L'utilisateur peut donc naviguer au sein de la Webview sans problème.

    Si l'utilisateur scan un QRcode. Je recupère le résultat qui est une URL vers le même site par exemple: "http://monSiteWeb.fr/resultat". A ce moment là si je charge cette nouvelle URL avec la Webview. L'utilisateur n'est pas reconnu comme étant un utilisateur connecté; il est donc redirigé vers la page de login.

    Je ne comprend pas pourquoi j'ai une perte de session a ce moment là?

    Mon code :

    Création de la webView:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
     
    		myWebView = (WebView) findViewById(R.id.myWebView);
    		myWebView.setWebViewClient(new MyWebViewClient());  myWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
    		myWebView.getSettings().setJavaScriptEnabled(true);
    		myWebView.getSettings().setAppCacheEnabled(true);
     
                    myWebView.loadURL("http://monSiteWeb.fr/");
    }
    Lancement de la librairie zxing:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	public void scanNow(View view)
    	{
    		Intent intent = new Intent("com.google.zxing.client.android.SCAN");
    		startActivityForResult(intent, 0);
    	}
    et Exploitation du résultat du scan:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    	public void onActivityResult(int requestCode, int resultCode, Intent intent) 
    	{
     
    	  if (requestCode == 0) 
    	    {
    	        if (resultCode == RESULT_OK)
    	        {
    	           String contents = intent.getStringExtra("SCAN_RESULT");
    	           myWebView.loadURL(content); //contents="http://monSiteWeb.fr/resultat"
    	           } 
    	    }
    	}
    Merci pour vos aides.
    JB

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Par défaut
    As-tu essayé de le faire à la main.
    Tu charges la 1ère fois normalement.
    Puis, lors d'un clic sur un bouton de l'interface Android, tu exécutes une seconde fois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myWebView.loadURL("http://monSiteWeb.fr/resultat");
    Le problème est toujours présent ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 53
    Par défaut
    Oui effectivement le problème est le même.
    Je récapitule:

    Je charge la page http://www.monSite.fr/login dans ma webview. L'utilisateur se connecte avec login et mot de passe. Si je navigue dans la webview je peux accéder à la page perso de l'utilisateur : http://www.monSite.fr/perso.

    Par contre après connexion de l'utilisateur si j'appuis sur un bouton de l'interface android et que j'exécute la ligne suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myWebView.loadUrl(http://www.monSite.fr/perso)
    Je suis redirigé vers la page de login. L'utilisateur n'est plus connecté.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Par défaut
    Peut-être que cette documentation pourra t'aider.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 53
    Par défaut
    J'ai résolu mon problème!

    Merci à simon pour la piste qui m'a permis d'observer de plus prêt les cookies.

    L'erreur viens de moi puisque je chargeais, la première fois, le site web avec l'url: http://www.monsite.fr

    et la seconde fois avec l'url :
    http://monsite.fr

    La Webview considère donc deux domaines différents et ne fait donc pas le rapprochement entre le premier cookies et le domaine "http://monsite.fr".

  6. #6
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    En fait c'est le cookie qui détermine le domaine....

    Si il est correctement fait avec un Set-Cookie: domain=.monsite.fr. il passera dans les deux cas.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. SESSION ID change ou perte de COOKIE
    Par Edisan dans le forum Langage
    Réponses: 1
    Dernier message: 24/07/2009, 14h02
  2. perte de cookie et de session dans une page aspx
    Par lenny32 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 08/12/2008, 09h54
  3. Réponses: 12
    Dernier message: 14/02/2006, 19h03
  4. [Cookies] Session object destruction failed
    Par Paganoni dans le forum Langage
    Réponses: 2
    Dernier message: 11/01/2006, 09h38
  5. Réponses: 12
    Dernier message: 24/09/2003, 15h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo