2014-09-13 68 views
0

我找不到這個網站,我無法弄清楚我的代碼有什麼問題。Laravel 4.2驗證:嘗試失敗

我想要truevar_dump(Auth::attempt()),但它總是false。 這是我的控制器方法:

public function vartotojoPrisijungimoForma(){ 
    $view = View::make('vartotojai.vartotojoPrisijungimoForma', 
    array('title'=>'Vartotojo Prisijungimas')); 

    var_dump(Auth::attempt(array('vardas'=>'aaaaa','pw'=>'aaaaa'))); 

    return $view; 
} 

在我的數據庫pw

我auth.php文件看起來像這樣的用戶名被存儲爲vardas和密碼:

<?php 

return array(
    'driver' => 'eloquent', 
    'model' => 'Vartotojai', 
    'table' => 'vartotojai', 

    'reminder' => array(
     'email' => 'emails.auth.reminder', 
     'table' => 'password_reminders', 
     'expire' => 60, 
), 

); 

和模型文件是Vartotojai.php,看起來像這樣:

<?php 
    use Illuminate\Auth\UserInterface; 
    use Illuminate\Auth\Reminders\RemindableInterface; 

class Vartotojai extends ModeliuBaze implements UserInterface, RemindableInterface{ 
    protected $table = 'vartotojai'; 
    public $timestamps = false; 

    protected static $rules = array( 
     'vardas'=>'required|unique:vartotojai|min:4|regex:/[a-zA-Z]$/', 
     'pw'=>'required|alpha_num|between:4,8|confirmed', 
     'pw_confirmation'=>'required|alpha_num|between:4,8' 
    ); 

    protected static $messages = array( 
     'required' => ':attribute laukelis tuscias!', 
     'min'=> ':attribute laukelyje galimas minimalus(:min) simboliu kiekis!', 
     'between' => ':attribute laukelis gali buti nuo :min - :max simboliu intervale!', 
     'vardas.regex'=> ':attribute turi atitikti siuos simbolius (a-zA-Z)', 
     'unique'=> 'Jau vartotojas su tokiu vardu uzregistruotas!', 
     'alpha_num'=>':attribute laukelyje galima rasyti tik skaicius ir raides!', 
     'confirmed'=>'Nesutampa slaptazodziai!' 
    ); 

    protected $hidden = array('password'); 

    public function getAuthIdentifier(){ 
     return $this->getKey(); 
    } 
    public function getAuthPassword(){ 
     return $this->password; 
    } 
    public function getRememberToken(){ 
     return $this->remember_token; 
    } 
    public function setRememberToken($value){ 
     $this->remember_token = $value; 
    } 
    public function getRememberTokenName(){ 
     return 'remember_token'; 
    } 
    public function getReminderEmail(){ 
     return $this->email; 
    } 
    } 

我試圖檢查散列:

public function vartotojoPrisijungimoForma(){ 
     $view = View::make('vartotojai.vartotojoPrisijungimoForma', 
     array('title'=>'Vartotojo Prisijungimas')); 
     $pw = Vartotojai::find('5'); 

     var_dump(Auth::attempt(array('vardas'=>'aaaaa','pw'=>'aaaaa'))); 
     var_dump(Hash::check('aaaaa',$pw->pw)); 
     return $view; 
     } 

和哈希檢查顯示如此。

回答

0

您可能需要在數據庫中將密碼字段從'pw'更改爲'password'。 Laravel使用「密碼」驗證憑據。

OR

您可以將該功能更改爲:

public function getAuthPassword(){ 
    return $this->pw; 
} 

然後你嘗試的功能應該是:

var_dump(Auth::attempt(array('vardas'=>'aaaaa','password'=>'aaaaa'))); 
+0

哦,現在的工作好!謝謝。 – Ernestyno 2014-09-14 11:35:24