문제

Kohana 2.3.4를 사용하고 있으며 인증 모듈이 작동하지 않습니다.

나는 다음과 같은 사용자를 추가하고 있습니다.

$user = ORM::factory('user');
$user->username = 'admin';
$this->auth = Auth::instance();   
$user->email    = 'admin@example.com';
$user->password = 'secret';

$user->add(ORM::factory('role', 'login'));
$user->save();

문제는 사용자 테이블을 살펴보면 비밀번호가 명확하다는 것입니다. auth_user_model이 호출되지 않은 것 같습니다.

내 사용자 모델은 문서에서 나온 것입니다. 즉

// and, in models/user.php
class User_Model extends ORM {
    protected $has_and_belongs_to_many = array('roles');

    public function unique_key($id = NULL)
    {
        if ( ! empty($id) AND is_string($id) AND ! ctype_digit($id) )
        {
            return 'username';
        }

        return parent::unique_key($id);
    }

}

면밀히 검사 할 때 auth_user_model 파일이 호출되지 않습니다. 나는 그것을 손상 시켰고 불만이 없었다.

그래서 나는 바뀌었다

class User_Model extends Auth_User_Model {

그리고 이제는 암호를 해싱하고 있습니다. 이것이 올바른 사용 방법입니까? 이것에 대한 더 많은 의견을 보지 못한 것에 놀랐습니까? 에게

class User_Model extends ORM {
도움이 되었습니까?

해결책

예, 이것이 ORM 인증 드라이버와 함께 사용자 모델을 사용하는 적절한 방법입니다. 자신의 모델에서 __set ()를 과부하하고 auth_user_model처럼 수행 할 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top