簡體   English   中英

Laravel護照總是說需要用戶名和密碼,即使提供了有效的憑據

[英]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.

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