[英]Laravel Passport password grant returns Invalid Credentials Exception
[英]Laravel passport always say require username and password even the valid credentials are provided
我正在使用Laravel開發REST API。 我正在使用Passport對我的API實現身份驗證功能。 我正在關注本教程-https://scotch.io/@neo/getting-started-with-laravel-passport 。 我已成功安裝和配置。 我現在遇到的唯一問題是,當我從此終結點“ oauth / token”請求令牌時,API總是要求提供用戶名和密碼。 請在下面查看我的情況。
我這樣在數據庫中注冊了一個用戶。
$user = [
'name' => 'waiyanhein',
'email' => 'iljimae.ic@gmail.com',
'password' => bcrypt('testing')
];
App\User::create($user);
用戶已注冊,並在數據庫中創建了一條記錄。 使用我在安裝密碼和用戶憑據時獲得的客戶端ID和密碼,如本教程所述,我請求生成訪問令牌。 但是我從REST客戶端發出了請求。 我的要求如下圖所示。
如您所見,我提供了有效的用戶憑據以及客戶端ID和密碼。 當我發出請求時,REST客戶端工具會提示一個彈出框,再次要求用戶提供憑據,如下面的屏幕截圖所示。
當我再次輸入憑據時,即使憑據有效,它也會繼續彈出對話框。 我沒有使用用戶名,而是嘗試使用電子郵件。 不管我怎么嘗試,它只是在詢問用戶憑據。 請求為何以及有什么問題? 如何正確傳遞請求中的憑據?
Laravel Passport假設您在users
表中具有username
列,因為您沒有此列,而是name
,因此您需要將它告訴護照。
第一種使用訪問器的方法:
public function getUsernameAttribute(){
return $this->attributes['name'];
}
使用findForPassport
方法:
public function findForPassport($username) {
return $this->where('name', $username)->first();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.