PEAR-Forum.de Übersicht Thema anzeigen - Login funktioniert nicht richtig :/

Login funktioniert nicht richtig :/


 

PEAR-Forum.de Übersicht » Authentication
Neues Thema eröffnen Neue Antwort erstellen Diesen Beitrag ausdrucken
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
eyz
User


Anmeldungsdatum: 26.10.2005
Beiträge: 18
Wohnort: .at

Beitrag26.11.2005 22:03    Login funktioniert nicht richtig :/ Antworten mit Zitat

Hallo Pear-Freunde

Ich hab mich ein wenig mit LiveUser und LiveUser_admin beschäftigt und bin eigentlich recht begeistert davon. Nachdem ich mir den Source von LiveUser_admin/example1 angesehn habe. Probierte ich mich selber an einem eigenen admin.php, von wo aus die Rechte, Areas, Apps und User verändert werden können. Was bis jetzt auch super funktioniert.

Jetzt steh ich aber an bei dem Versuch mich einzuloggen :/

Also ich hab die DB von dem Beispiel.
Code:

mysql> describe liveuser_users;
+----------------+-----------+------+-----+---------+-------+
| Field          | Type      | Null | Key | Default | Extra |
+----------------+-----------+------+-----+---------+-------+
| user_id        | char(32)  | YES  | MUL | NULL    |       |
| handle         | char(32)  | YES  |     | NULL    |       |
| passwd         | char(32)  | YES  |     | NULL    |       |
| owner_user_id  | int(11)   | YES  |     | NULL    |       |
| owner_group_id | int(11)   | YES  |     | NULL    |       |
| lastlogin      | datetime  | YES  |     | NULL    |       |
| isactive       | char(1)   | YES  |     | NULL    |       |
| name           | char(50)  | YES  |     | NULL    |       |
| email          | char(100) | YES  |     | NULL    |       |
+----------------+-----------+------+-----+---------+-------+

mit dem User: name[test] pwd[test]
Code:

+---------+----------------+----------------------------------+---------------+----------------+-----------+----------+------+-------+
| user_id | handle         | passwd                           | owner_user_id | owner_group_id | lastlogin | isactive | name | email |
+---------+----------------+----------------------------------+---------------+----------------+-----------+----------+------+-------+
| 5       | test1455086050 | 098f6bcd4621d373cade4e832627b4f6 |          NULL |           NULL | NULL      | NULL     | test | email |
+---------+----------------+----------------------------------+---------------+----------------+-----------+----------+------+-------+



Mein Conf-Array sieht so aus:
PHP:
<?php
$conf 
=
    array(
        
'debug'         => true,
        
'session'       => array(
            
'name'      => 'PHPSESSID',
            
'varname'   => 'loginInfo'
        
),
        
'login'         => array(
            
'force'     => true,
        ),
        
'logout'        => array(
            
'destroy'   => true,
        ),
        
'cookie'        => array(
            
'name'      => 'loginInfo',
            
'path'      => null,
            
'domain'    => null,
            
'secure'    => false,
            
'lifetime'  => 30,
            
'secret'    => 'mysecretkey',
            
'savedir'   => '.',
        ),
        
//'autoInit'      => true, // since lu_admin 0.3.5 removed.. 
        // removed autoInit (call setAdminContainers() manually instead) *BC BREAK*
        
'authContainers' => array(
            
'DB_Local'  => array(
                
'type'  => $storage,
                
'loginTimeout'  => 0,
                
'expireTime'    => 3600,
                
'idleTime'      => 1800,
                
'allowDuplicateHandles' => 0,
                
'passwordEncryptionMode' => 'MD5',
                
'storage' => array(
                    
'connection' => $db,
                    
'dsn' => $dsn,
                    
#'prefix' => 'liveuser_',
                    
'alias' => array(
                        
'name' => 'name',
                        
'email' => 'email',
                        
'passwd' => 'passwd',
                        
'handle' => 'handle',
                        
'auth_user_id' => 'user_id',
                        
'lastlogin' => 'lastlogin',
                        
'is_active' => 'isactive',
                        
'owner_user_id' => 'owner_user_id',
                        
'owner_group_id' => 'owner_group_id',
                    ),
                    
'fields' => array(
                        
'name' => 'text',
                        
'email' => 'text',
                        
'lastlogin' => 'timestamp',
                        
'is_active' => 'boolean',
                        
'owner_user_id' => 'integer',
                        
'owner_group_id' => 'integer',
                    ),
                    
'tables' => array(
                        
'users' => array(
                            
'fields' => array(
                                
'name' => false,
                                
'email' => false,
                                
'owner_user_id' => false,
                                
'owner_group_id' => false,
                                
'lastlogin' => false,
                                
'is_active' => false,
                            ),
                        ),
                    ),
                    
// 'force_seq' => false
                
),
            ),
        ),
        
'permContainer' => array(
            
'type'  => 'Complex',
            
'alias' => array(),
            
'storage' => array(
                
$storage => array(
                    
'connection' => $db,
                    
'dsn' => $dsn,
                    
'prefix' => 'liveuser_',
                    
'tables' => array(),
                    
'fields' => array(),
                    
'alias' => array(),
                    
// 'force_seq' => false
                
),
            ),
        ),
    );


Dann erstell ich ein Objekt und schau mit init() ob man nun eingeloggt ist oder nicht.
PHP:
<?php
$LU 
=& LiveUser::factory($conf);

$handle = (array_key_exists('handle'$_REQUEST)) ? $_REQUEST['handle'] : null;
$passwd = (array_key_exists('passwd'$_REQUEST)) ? $_REQUEST['passwd'] : null;
$logout = (array_key_exists('logout'$_REQUEST)) ? $_REQUEST['logout'] : false;
$remember = (array_key_exists('rememberMe'$_REQUEST)) ? $_REQUEST['rememberMe'] : false;

if (!
$LU->init($handle$passwd$logout$remember)) {
    
var_dump($LU->getErrors());
    die();
}

echo 
"LUstatusMessage[".$LU->statusMessage($LU->getStatus())."]";
// liefert immer wieder:
// Cannot authenticate, handle/password is probably wrong

//-------- dann noch LU_admin mit Log-File -----------
$admin =& LiveUser_Admin::factory($conf);
$logconf = array('mode' => 0666'timeFormat' => '%X %x');
$logger = &Log::factory('file''_logs/liveuser_test.log''ident'$logconf);
$admin->log->addChild($logger);
$admin->setAdminContainers();


Will ich mich mit dem Testuser einloggen ($handle="test", $pwd="test") bekomm ich immer die Meldung "Cannot authenticate, handle/password is probably wrong".

Ich hab mich jetzt schon durchs Forum durchgelesen und die Doku studiert, bin aber noch nicht auf den Fehler gekommen. Jetzt versuch ichs mit einem Post hier im Forum Rolling Eyes

mfg eyz
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
lsmith
User


Anmeldungsdatum: 10.03.2004
Beiträge: 450

Beitrag27.11.2005 13:01     Antworten mit Zitat

Also der handle in deinem db output ist aber "test1455086050" .. ?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
eyz
User


Anmeldungsdatum: 26.10.2005
Beiträge: 18
Wohnort: .at

Beitrag27.11.2005 14:50     Antworten mit Zitat

Auch mit $handle[test1455086050] $passwd[test] bekomm ich die gleiche Meldung, dass entweder Handle oder Passwort falsch sind.

Könnte es eventuell sein, dass "owner_user_id" und "owner_group_id" gesetzt sein müssen?


Zuletzt bearbeitet von eyz am 27.11.2005 14:57, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
lsmith
User


Anmeldungsdatum: 10.03.2004
Beiträge: 450

Beitrag27.11.2005 14:55     Antworten mit Zitat

und die beispiele im client funktionieren ansonsten?
es ist von hieraus etwas schwer das genau zu debuggen.

hast du auch explizit die werte der parameter geprüft?
$LU->init($handle, $passwd, $logout, $remember)

das ist $dsn und $db in deinem config array? eigentlich braucht man nur entweder eine "dsn" oder eine "connection" übergeben.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
eyz
User


Anmeldungsdatum: 26.10.2005
Beiträge: 18
Wohnort: .at

Beitrag27.11.2005 15:01     Antworten mit Zitat

Ja die Werte werden überprüft, durch eine schlichte Ausgabe mit echo von $handle, $passwd etc

Ausgabe:
handle[test145508605]passwd[test]logout[]remember[]
LUstatusMessage[Cannot authenticate, handle/password is probably wrong]

Mein $dsn fuktioniert, ich kann in meinem admin.php alles auführen (User adden, Rechte vergeben, im Prinzip alles).

Nur beim Login passt irgendetwas noch nicht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
lsmith
User


Anmeldungsdatum: 10.03.2004
Beiträge: 450

Beitrag27.11.2005 15:03     Antworten mit Zitat

hmm dann hilft nur noch etwas debugging code einzufügen. benuzt du MDB/MDB2 oder DB? Bei MDB/MDB2 kannst du einfach den debug handler aus dem beispiel 1 benutzen. der gibt dann alle queries aus. bei DB müsstest du entsprechenden debug code in LiveUser_Auth_DB in die _readUserData() methode einbauen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
eyz
User


Anmeldungsdatum: 26.10.2005
Beiträge: 18
Wohnort: .at

Beitrag27.11.2005 15:28     Antworten mit Zitat

$storage = 'MDB2';

Mit "Var_Dump::display($LU);" bekomm ich eine ziemlich umfangreiche Ausgabe über meine LU-Konfiguration - jedoch sind die Querys nicht enthalten.

Auf was soll ich den Debug-Handler ansetzen um die Ausgabe der Querys zu erreichen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
lsmith
User


Anmeldungsdatum: 10.03.2004
Beiträge: 450

Beitrag27.11.2005 15:30     Antworten mit Zitat

http://cvs.php.net/co.php/pear/LiveUser_Admin/docs/examples/example1/config.inc.php?r=1.8#31

hier ist das option array für MDB2 .. dort wird eine call back function definiert, die dann aufgerufen wird bei jedem query. die function selber ist etwas weiter unten definiert.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
eyz
User


Anmeldungsdatum: 26.10.2005
Beiträge: 18
Wohnort: .at

Beitrag27.11.2005 15:55     Antworten mit Zitat

Also die "Call back Funktion" funktioniert, wenn ich zB. mit $admin->addUser einen User hinzufüge, bekomm ich das dazugehörige Query ausgegeben.

Beim Einloggen jedoch nicht. Ein Hinweis auf einen Fehler?

---- edit ----
Ich habs jetzt hinbekommen, dass ich den Query bekomme.. jedoch funktioniert das Login noch immer nicht Smile

Nach dem Abschicken von $handle und $passwd bekomm ich als Resultat:
Code:

string(345) query: SELECT user_id AS auth_user_id,handle AS handle,passwd AS passwd,name AS name,email AS email,owner_user_id AS owner_user_id,owner_group_id AS owner_group_id,lastlogin AS lastlogin,isactive AS is_active
            FROM liveuser_users
            WHERE  handle='test1455086050' AND   passwd='098f6bcd4621d373cade4e832627b4f6'

Dieses Resultat in das Mysql-Clientprogramm eingegeben gibt mir den User aus... mit email, name, etc.. - also am Query liegts nicht.

Code:

echo "handle[$handle]passwd[$passwd]logout[$logout]remember[$remember]<br />";
# ergibt:
# handle[test1455086050]passwd[test]logout[]remember[]
echo "LUstatusMessage[".$LU->statusMessage($LU->getStatus())."]";
# ergibt:
# LUstatusMessage[Cannot authenticate, handle/password is probably wrong]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
lsmith
User


Anmeldungsdatum: 10.03.2004
Beiträge: 450

Beitrag27.11.2005 22:28     Antworten mit Zitat

Hab mir nochmal die status message angeschaut .. und im aktuellen CVS gibt es nur folgende meldung:

"'Authentication failed, handle/password is probably wrong'"

könnte es sein, dass du eine alte version von liveuser nutzt?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
eyz
User


Anmeldungsdatum: 26.10.2005
Beiträge: 18
Wohnort: .at

Beitrag27.11.2005 22:34     Antworten mit Zitat

mit "pear list" erhalte ich:

LiveUser 0.16.7 beta
LiveUser_Admin 0.3.5 beta

In meiner LiveUser.php (Zeile 1610):
Code:
LIVEUSER_STATUS_AUTHFAILED      => 'Cannot authenticate, handle/password is probably wrong',


ps: Großartige Arbeit, die du hier leistest - danke

---- edit ----
Ich werd mein LiveUser.php mal aktualisieren mit dem CVS-Code und meld mich dann wieder Rolling Eyes
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
lsmith
User


Anmeldungsdatum: 10.03.2004
Beiträge: 450

Beitrag27.11.2005 22:44     Antworten mit Zitat

Ah ok .. das sind die aktuellsten versionen .. dann hat wohl einer die message im cvs verändert.

hmm das ist schon alles recht skuril. offentsichtlich scheint der container geladen werden. aha .. ich glaube es liegt am dem NULL im isactive feld .. das müsste "N" oder "Y" sein ..

wenn es "N" wäre, dann würde das login immer noch nocht funktionieren, da dies bedeutet, dass der user nicht aktiv ist, aber du würdest dann einen anderen status bekommen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
eyz
User


Anmeldungsdatum: 26.10.2005
Beiträge: 18
Wohnort: .at

Beitrag27.11.2005 22:49     Antworten mit Zitat

Ich hab jetzt mal provisorisch [isactive] mit einem update auf "Y" gesetzt und siehe da, es funktioniert einwandfrei!

Danke für deine Zeit!

Immerhin hab ich jetzt durch das viele schmöckern einen tieferen Einblick in LU bekommen Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
lsmith
User


Anmeldungsdatum: 10.03.2004
Beiträge: 450

Beitrag27.11.2005 22:51     Antworten mit Zitat

das ist echt ein perfider bug in der art und weise, wie wir mit dem optional is_active feature umgehen. es ist einfach nicht vergessen, dass der wert was anderes ausser true oder false ist ...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Diese Seite übersetzen
PEAR-Forum.de Übersicht » Authentication
Neues Thema eröffnen Neue Antwort erstellen Diesen Beitrag ausdrucken
   Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

Zu Deinen Favoriten hinzufügen

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen