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

MkFramework Discussion :

Token Timeout et mootools


Sujet :

MkFramework

  1. #1
    Membre habitué
    Homme Profil pro
    Responsable SAV
    Inscrit en
    Mars 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable SAV

    Informations forums :
    Inscription : Mars 2010
    Messages : 122
    Points : 128
    Points
    128
    Par défaut Token Timeout et mootools
    Bonjour,

    Avant de commencer à vous exposer mon problème, je tiens comme toujours à vous remercier pour ce fabuleux Mkframework. Je ne passe pas deux jours sans l'utiliser.
    Et comme je commence à être très à l'aise en l'utilisant, je vous sollicite de moins en moins. Je sais que je me répète, mais je pense qu'il n'y a pas de limite à cela. J'aime ce Mkframework.
    Bref, ceci étant dit, je reviens sur le but de ce ticket.

    Je me sers de Mootools pour enregistrer en asynchrone les données d'un formulaire, et comme je peux enregistrer plusieurs références,
    je me trouve à un moment avec un problème de Token Timeout, alors comment je peux palier à ce problème ?

    Voici le message que je capture en ajax
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {"token":"msg_tokenInvalidTimeout"}
    Voici également un extrait de ma méthode dans le contrôleur main
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    private function processSaveAjaxPiece(){
    		$this->oLayout->setLayout	( 'ajxlayout'	) ; // changement de layout vide pour notre affichage
        _root::setConfigVar('site.mode','prod'); // desactive la barre Debug
     
        if(!_root::getRequest()->isPost() ){ //si ce n'est pas une requete POST on ne soumet pas
    		return null;
        }
     
        $oPluginXsrf=new plugin_xsrf();
        if(!$oPluginXsrf->checkToken( _root::getParam('token') ) ){ //on verifie que le token est valide
    		return array('token'=>$oPluginXsrf->getMessage() );
        }
     
    ....
    }
    Cordialement

  2. #2
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Tout d'abord merci de retour
    C'est toujours un plaisir de répondre aux questions, n'hésitez pas à demander des tutoriaux et autres pécisions si la documentation est incomplète

    Les token générés ont une periode de validité, vous pouvez modifier celle-ci dans le fichier conf/

    Il y a une page présentant/expliquant le fichier de configuration: http://mkframework.com/configuration.html

    Section [security]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xsrf.timeout.lifetime=360
    La valeur est exprimé en secondes
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  3. #3
    Membre habitué
    Homme Profil pro
    Responsable SAV
    Inscrit en
    Mars 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable SAV

    Informations forums :
    Inscription : Mars 2010
    Messages : 122
    Points : 128
    Points
    128
    Par défaut
    Bonjour,

    Merci encore pour cette disponibilité hors norme.
    En parcourant les différentes pistes que vous avez fournies, j'ai pu trouver mon bonheur.
    Je récapitule mon problème.
    Comme j'utilise une fonction mootools pour renvoyer mon formulaire d'ajout d'articles, il m'arrivait de dépasser le 360s
    allouées pour faire parvenir les données au serveur.

    J'ai vu que je pouvais modifier ce délai avec la fonction ci-dessous
    directement à partir de ma méthode new du contrôleur main:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public function _new(){
    		$sRecherche =_root::getParam("sRecherche",null) ;
     
    		_root::setConfigVar('security.xsrf.timeout.lifetime',30) ; // modifie le temps pour envoyer le formulaire
    ...
    }
    Mais cela ne correspondait pas à ce que je voulais, je voulais permettre à l'utilisateur de bénéficier d'un autre temps donc un autre token
    pour ajouter un autre article
    Alors dans ma fonction du contrôleur main
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    private function processSaveAjaxPiece(){
        $this->oLayout->setLayout	( 'ajxlayout'	) ; // changement de layout vide pour notre affichage
        _root::setConfigVar('site.mode','prod'); // desactive la barre Debug
     
        if(!_root::getRequest()->isPost() ){ //si ce n'est pas une requete POST on ne soumet pas
    			return null;
        }
     
    	$oPluginXsrf=new plugin_xsrf();
    	if(!$oPluginXsrf->checkToken( _root::getParam('token') ) ){ //on verifie que le token est valide
    	   //"token":"msg_tokenInvalidTimeout"
              $outp = "{";
              $outp .= '"p_id":"'  . 0 . '",';
              $outp .= '"token":"'  . "msg_tokenInvalidTimeout" . '",';
              $outp .= '"token_new":"'  . $oPluginXsrf->getToken() . '",'; // nouveau token
              $outp .= '"message":"'. "Veuillez renvoyer vos données"  . '"';
              $outp .="}";
     
            return $outp ; // renvoie mon JSON
            //return array('token'=>$oPluginXsrf->getMessage() );
         }
    ...
     
    }
    et dans ma fonction sous mootools
    je récupère mon JSON
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ....
    var oPiece =   JSON.parse(eval('(' + responseJSON + ')')); //recupere un tableau de messages
     
     if(oPiece.token == "msg_tokenInvalidTimeout")
     {
           $('monToken').getElement('input[name="token"]').set('value', oPiece.token_new ); // envoie une nouvelle valeur du token
           alert(oPiece.message) ;
     }
    ....
    Cordialement

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

Discussions similaires

  1. [MooTools] Gérer le timeout de requete json
    Par AsQuel dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 21/04/2008, 14h28
  2. [TOMCAT] Problème de timeout d'une servlet
    Par tuxor dans le forum Tomcat et TomEE
    Réponses: 5
    Dernier message: 18/09/2007, 12h04
  3. [JSP]recuperer session-timeout dans web.xml
    Par seb_fou dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 07/05/2004, 16h01
  4. [Sockets] Timeout sur accept() ?
    Par MikB dans le forum Développement
    Réponses: 2
    Dernier message: 30/12/2003, 17h22
  5. Ftp login & Timeout
    Par MSP dans le forum Modules
    Réponses: 6
    Dernier message: 29/08/2003, 12h55

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