27 votes

PhoneGap: l'authentification basée sur les cookies (PHP) ne fonctionne pas [WebView]

Je suis en train de travailler sur un mobile web app à l'aide de sencha touch, HTML5 et phonegap comme un wrapper.

J'utilise PHP-Authentification (Cookie) et ajax demandes. Tout fonctionne bien sur safari ou chrome, mais après le déploiement avec phonegap (webview) il ne fonctionne pas plus...

Toute aide serait appréciée :)

Un peu plus de détails:

Toutes les données de mon application est chargée via des requêtes ajax sur mon serveur composant "mobile.php". J'utilise PHP de base-Auth pour autenticate l'utilisateur:

  1. AJAX-Demande de [nom d'utilisateur, mot de passe] -> mobile.php -> Session (cookie)
  2. Toutes les autres demandes si l'authentification a réussi

Quelle est la différence entre un normal safari site web et la webview?

27voto

meaku Points 428

je l'ai compris:

vous devez modifier le fichier phonegap_delegate.m et ajouter ce qui suit à la méthode init:

 
- (id) init
{   
    /** If you need to do any extra app-specific initialization, you can do it here
     *  -jm
     **/
    //special setting to accept cookies via ajax-request
    NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage 
                                          sharedHTTPCookieStorage]; 
    [cookieStorage setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways]; 

    return [super init];
}
 

il permet à webview d'accepter les cookies des requêtes ajax

2voto

NAD Points 185

Si votre Phonegap requêtes AJAX ne sont pas de tir rappels comme ils sont censés le faire, cela peut être la raison.

Si la réponse que vous obtenez toutes les tentatives pour définir les cookies et que vous n'avez pas fait de Michael fixer ensuite votre (jquery), AJAX demande échoue silencieusement -- ni le succès: ni erreur: rappels seront le feu, en dépit du fait que le serveur a bien reçu la demande et envoyé une réponse. Il semble que vous devez le faire même si vous n'avez pas de soins sur les cookies.

J'espère que cela aide quelqu'un.

Je n'ai pas de soins sur les cookies, mais je viens de passer quelques heures à essayer de comprendre pourquoi les rappels n'ont pas le feu!

-5voto

sunil Points 1

Les meilleures façons de stocker obtenir et supprimer les cookies fonctionnent correctement dans mon application qui est en direct

Pour stocker de la valeur dans un cookie

 window.localStorage.setItem("key", "value");
 

Pour obtenir de la valeur dans un cookie

 var value = window.localStorage.getItem("key");
 

Pour supprimer la valeur du cookie

 window.localStorage.removeItem("key");
window.localStorage.clear();
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X