Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] Problème identification avec jAuth + mysql

Posted by calmacil on 06/17/2009 10:02

Bonjour à tous,

Je développe une application (base de données mysql) avec module d'identification et je rencontre le problème suivant: l'authentification échoue systématiquement.

Je sais que ce problème peut sembler redondant dans le sens ou il ressemble énormément à celui-ci mais c'est en fait légèrement différent.

En effet, contrairement à Nigoki il n'y a pas eu de migration, j'ai commencé à travailler directement avec MySQL. De plus, le bug ne semble pas lié à l'encodage des tables puisque quel que soit l'encodage (j'ai essayé avec plusieurs encodages UTF-8 et ISO) l'authentification échoue, avec ou sans cryptage du mot de passe.

J'utilise mon propre DAO et celui-ci semble correct, puisque l'enregistrement de nouveaux utilisateurs se fait correctement; les méthodes nécessaires ont bien été définies.

Voici le DAO :

 <?xml version="1.0" encoding="UTF-8"?>
 <dao xmlns="http://jelix.org/ns/dao/1.0">
    <datasources>
        <primarytable name="mbr" realname="membre" primarykey="id" />
        <foreigntable name="des" realname="design" primarykey="id" onforeignkey="design" />
    </datasources>
    
    <record>
        <property name="id" fieldname="id" table="mbr" required="yes" datatype="int" />
        <property name="login" fieldname="login" table="mbr" required="yes" datatype="string" maxlength="30"/>
        <property name="password" fieldname="password" table="mbr" datatype="string" maxlength="32" selectpattern="%s" updatepattern="" insertpattern="%s" />
        <property name="mail" fieldname="mail" table="mbr" datatype="string" maxlength="60" required="no" />
        <property name="date" fieldname="dateinscri" table="mbr" datatype="date" required="yes" />
        <property name="design" fieldname="design" table="mbr" >datatype="int" required="yes" />
        <property name="design_name" fieldname="nom" table="des" datatype="string" required="no"/>
    </record>
    
    <factory>
        <method name="getByLoginPassword" type="selectFirst">
            <parameter name="login"/>
            <parameter name="password" />
            <conditions>
                <eq property="login" expr="$login" />
                <eq property="password" expr="$password" />
            </conditions>
        </method>
        
        <method name="getByLogin" type="selectFirst">
            <parameter name="login"/>
            <conditions>
                <eq property="login" expr="$login" />
            </conditions>
        </method>

        <method name="updatePassword" type="update">
            <parameter name="login"/>
            <parameter name="password"/>
            <values>
                <value property="password" expr="$password" />
            </values>
            <conditions>
                <eq property="login" expr="$login" />
            </conditions>
        </method>

        <method name="deleteByLogin" type="delete">
            <parameter name="login" />
            <conditions>
                <eq property="login" expr="$login" />
            </conditions>
        </method>

        <method name="findByLogin" type="select">
            <parameter name="pattern" />
            <conditions>
                <like property="login" expr="$pattern" />
            </conditions>
            <order>
                <orderitem property="login" way="asc" />
            </order>
        </method>
    </factory>
 </dao>

L'authentification échoue aussi bien en utilisant le contrôleur de jAuth qu'en utilisant ma propre fonction, que voici :

    function auth() {
        $rep = $this->getResponse('redirect');
        if (jAuth::login($this->param('login'), $this->param('mdp'))) {
            $rep->action = 'membre~default:index';
        } else {
            $rep->action = 'index';
        }
        return $rep;
    }

Que puis-je faire ?

D'avance, merci à tous

  [Opened] Re: Problème identification avec jAuth + mysql

Reply #1 Posted by laurentj on 06/17/2009 10:56

L'echec de l'authentification peut venir de n'importe où. C'est difficile de t'aider. C'est peut être un problème de configuration du plugin auth. Ou de cookie. Essaye de tracer l'exécution.

  [Opened] Re: Problème identification avec jAuth + mysql

Reply #2 Posted by calmacil on 06/22/2009 18:11

Merci laurentj, mais le problème ne semble pas provenir de la configuration du plugin. En effet, cela fonctionne parfaitement avec le Dao et la table par défaut, qui malheureusement ne conviennent pas aux besoins de mon application.

Peut être un problème dans le Dao? Possible, mais je ne vois pas encore ou. Je vous tiens au courant.

  [Opened] Re: Problème identification avec jAuth + mysql

Reply #3 Posted by laurentj on 06/23/2009 12:42

je crois avoir trouvé : si je ne me trompe pas, la clé primaire doit absolument être le champs login, et non id. tu peux garder le champs id, mais tu dois alors mettre un index type UNIQUE dessus pour avoir l'auto increment.

 
Page
  1. Problème identification avec jAuth + mysql