簡體   English   中英

laravel 5.2 Auth:attemp總是返回false

[英]laravel 5.2 Auth:attemp always returns false

我遇到的問題是auth:attempt方法總是向我返回假值。

我的Db條目是:

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

注意:在回顯Hash :: make('admin')的輸出后,我手動存儲了密碼。

身份驗證代碼為:

// 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";
}

我不知道這里出了什么問題???

您是否有其他模型而不是默認用戶。

如果是這樣,您可以轉到config / auth.php並更改:

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

例如

謝謝回復。

我發現,由於我使用的是“代理商”表(而不是用戶),因此代理商模型需要實施某些方法,例如

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM