Blog Property "user.salt" Is Not Defined

Witajcie,

Próbuje poznać Yii tworząc Blog wg tutorialu. Zatrzymałem się niestety na etapie logowania z poziomu bazy danych.

Dodałem odpowiednio w pliku UserIdentity.php:





<?php

class UserIdentity extends CUserIdentity

{

    private $_id;

 

    public function authenticate()

    {

        $username=strtolower($this->username);

        $user=User::model()->find('LOWER(username)=?',array($username));

        if($user===null)

            $this->errorCode=self::ERROR_USERNAME_INVALID;

        else if(!$user->validatePassword($this->password))

            $this->errorCode=self::ERROR_PASSWORD_INVALID;

        else

        {

            $this->_id=$user->id;

            $this->username=$user->username;

            $this->errorCode=self::ERROR_NONE;

        }

        return $this->errorCode==self::ERROR_NONE;

    }

 

    public function getId()

    {

        return $this->_id;

    }

}




oraz w pliku Users.php





class User extends CActiveRecord

{

   

    public function validatePassword($password)

    {

        return $this->hashPassword($password,$this->salt)===$this->password;

    }

 

    public function hashPassword($password,$salt)

    {

        return md5($salt.$password);

    }

}




i wtedy otrzymałem kod błedu: Property "User.salt" is not defined

Dodałem więc pole public $salt w klasie User, co spowodowało że nie mogę się zalogować : Incorrect username or password.

Używam mysql. Zaimportowałem wcześniej schema.mysql z demo/blog, więc login i hasło powinno być demo. Robiłem wszystko wg tutoriala. Niestety skończyły mi się pomysły…

Spotkał się ktoś z tym problemem i jest w stanie podpowiedzieć co zrobić ??

Cześć,

A czy w bazie danych hasło też jest posolone ? bo jeżeli nie to się nie zalogujesz. Albo zrezygnuj z solenia, albo wpisz hasło do bazy ale po soleniu. Nieźle chyba nasoliłem :D

Dzięki za odpowiedź. Konfigurację robiłem zgodnie z tutorialem, więc na logikę biorąc gotowca schema.mysql z demo/bog powinno być posolone względem metody w klasie User.

Hasło w bazie wygląda tak: $2a$10$JTJf6/XqC94rrOtzuF397OHa4mbmZrVTBOQCmYD9U.obZRUut4BoC -wydaje mi się, że ta kropka sugeruje, że jest osolone.

edit:

Jest jakiś bug z tym osoleniem… w tym blogu. Przy starszej wersji Yii -> 1.1 pliki są bez osolenia i działa. Czyli w tek chwili mam tylko obejście problemu a nie rozwiązanie…

Jeśli ustawisz:


$salt=""; 

Powinien hash się zgadzać ;)

Rozumiem, że chcesz nowych użytkowników mieć z "sola". Więc musisz ustawić sól i utworzyć konta z posolonymi hasłami.

generalnie… jeśli ktoś chce się uczyć na podstawie blogu, to musi sobie ściągnąć Yii wersje 1.1, w przeciwnym razie podczas modyfikowania plików jest w pip błędów… :(

Mówisz o błędach w przypadku Yii 2? Przecież nie ma nawet oficjalnego wydania, to eksperymentalna alfa.

请参考,如有帮助请留下”脚印"

Please reference, if it helps, please leave your footprints

http:

//hi.baidu.com/tianyingnan/item/f3010afa55dd48d643c36a68