2016-11-17 77 views
2

我面臨的問題,身份驗證:嘗試方法總是返回我錯誤的價值。laravel 5.2身份驗證:試圖總是返回假

我的數據庫的項目有:

  • 用戶名:admin
  • 密碼: $ 2Y $ 10 $ jXkNy3WC2wqu0jmaqOfDiOgDnBV89uyvJPcNSU8xOnmO3w9RjT53S

注:我保存的密碼呼應哈希的輸出後手動::使( '管理')。

認證的代碼是:

// create our user data for the authentication 
$userdata = array(
    'username'  => Input::get('username'), 
    'password' => Input::get('password'), 
    'agencyactive' => 1 
); 

if (Auth::attempt($userdata)) 
{ 
    echo 'SUCCESS!';exit; 
} 
else 
{ 
    echo "<br>Login error";exit; 
} 

它總是打印 「登錄錯誤」。

有關疑難解答我登錄的SQL查詢,它檢索正確的記錄,

select * from `agencies` where `username` = 'admin' and `agencyactive` = 1 limit 1 

出人意料的是,當我驗證爲下面的比較,它打印MATCHES

if (\Hash::check('admin', '$2y$10$jXkNy3WC2wqu0jmaqOfDiOgDnBV89uyvJPcNSU8xOnmO3w9RjT53S')) 
{ 
    // The passwords match... 
    echo "MATCHES"; 
} 
else 
{ 
    echo "NO Match"; 
} 

我不知道這是怎麼回事這裏錯了嗎?

回答

0

你有另一個模型,而不是默認的用戶。

如果是的話,你可以去配置/ auth.php和變化:

'model' => 'MyApp\Models\Agency', 

例如

+0

是,某些方法我驗證的設置有: '「默認」 = > [ '後衛'=> '網頁', '密碼'=> '用戶', ], '衛士'=> [ '捲筒紙'=> [ '司機'=> '會話', 'provider'=>'users', ], 'api'=> [''driver'=>'token','''提供商'=> '用戶', ], ], '提供商'=> [ '用戶'=> [ '司機'=> '口才', '模式'=>應用\機構: :class, ], ],' – user7174455

0

感謝您的答覆。

我發現,自從我使用「機構」表(而不是用戶),該模型原子能機構需要實現諸如

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