2016-11-15 54 views
2

如何使用Laravel的Passport軟件包對不同的密碼列進行身份驗證。laravel護照自定義密碼列

如果我想從一個不同的「用戶名」欄進行身份驗證,它可以用下面的代碼來完成:

public function findForPassport($username) { 
     return $this->where('id', $username)->first(); 
    } 

這將需要標識,作爲列。如果我想使用不同的「密碼」列,該怎麼辦?表中具有不同名稱的列,例如'uid_token'。

回答

4

有一種Passport/Bridge要求的名爲validateForPassportPasswordGrant($ password)的方法,您可以在用戶模型中重寫,如果您不覆蓋它,它將在您的用戶表中查找「密碼」列。我不完全知道爲什麼他們沒有將其配置爲使用鑑別的方法getAuthPassword ...

3

添加此validateForPassportPasswordGrant方法用戶模型做的工作對我來說(「PasswMd」 - 自定義列名):

public function validateForPassportPasswordGrant($password) 
{ 
    return Hash::check($password, $this->PasswMd); 
}