Kohana Auth modülü giriş yapamıyorum

1 Cevap php

Kohana yılında Auth modülü aşina olanlar için, ben bir kullanıcı giriş yapamıyorum. Ben bir kullanıcı cezası oluşturabilirsiniz, ancak görünüşe göre sağlamalarının uyan değil. Ben db oluşturmak için MySQL sağlamak şema kullandım ve modülleri modellerini kullanıyorum.

Burada benim bir kullanıcı kodu oluşturmak bulunuyor:

    public function user_create()
	{
		$user = ORM::factory('user');
		$user->username = "user";

		$this->auth = Auth::instance();

		$user->email = "info@test.com";
		$user->password = $this->auth->hash_password('admin');
		$user->add(ORM::factory('role', 'login'));
		$user->add(ORM::factory('role', 'admin'));

		if ($user->save())
			{
				$this->template->title = "user saved";
				$this->template->content = "user saved";
			}
		}

Bu bir karma şifre ile bir kullanıcı oluşturur ve buna uygun giriş / admin rolleri verir. Her şey DB ince görünüyor. İşte benim giriş kod. Ben kullanıcı oturum denetler Yürürlükten bölümü atlandı

            $user = $this->input->post('username');
        $password = $this->input->post('password');

        if(!empty($user))
            {
                $find_user = ORM::factory('user')->where('username', $user)->find();
                $username = $find_user->username;

                $this->auth = Auth::instance();

                if($this->auth->login($username, $password))
                    {
                        $error = "logged in";
                    }
                else
                    {
                        $error = "not logged in at all";
                    }
            }

        $this->template->content = new View('admin/login_view');
        $this->template->content->user_info = $username . " " . $password;
        $this->template->title = "Login Admin";
        $this->template->content->bind('error', $error);

Her zaman "hiç giriş yapmadın" döndürür. Ben doğru kullanıcı adı ve şifre girilen doğrulamak, ama ben nedenini anlamaya olamaz oturum değil. Ben parola oluşturmak için hash_password işlevi inşa kullanıyorum ve dokümanlar takip ettik, ama ben hata nokta olamaz. Herhangi bir yardım?

1 Cevap

Kohana içinde Auth modülü otomatik olarak __ seti () yöntemi yoluyla belirlediğiniz parolayı sağlamalarının. Yani size şifre saklamak için için sadece çok gibi yapın:

public function user_create()
    {
            $user = ORM::factory('user');
            $user->username = "user";

            $this->auth = Auth::instance();

            $user->email = "info@test.com";
            $user->password = 'admin';
...

Umut olur. Eğer auth modülü (model / auth_user.php) kontrol etmek istedim Eğer bu şifreyi karma görebilirsiniz:

public function __set($key, $value)
{
	if ($key === 'password')
	{
		// Use Auth to hash the password
		$value = Auth::instance()->hash_password($value);
	}

	parent::__set($key, $value);
}