2017-04-06 140 views
1

在我當前的項目中使用Passport時,我總是收到「Unauthenticated error」(未經驗證的錯誤)。這就是我做了持續3天數:Laravel 5.3 + Passport:總是未經身份驗證的錯誤

  • 安裝和配置護照(如文檔說)
  • 請求令牌(密碼同意令牌)與郵差
  • 請求保護的途徑(AUTH:API中間件)與令牌
  • 獲取 `{「錯誤」:「未經身份驗證」。 }`
  • 搜索和搜索和研究
  • 獲取 `{ 「錯誤」: 「未。」 }`

然後,我安裝了一個新鮮的L5.3和一個新鮮的數據庫,工作正常。即使我目前的數據庫!

我已經試過了,我發現沒有成功的所有解決方案...

誰能幫助我?任何想法將不勝感激。

謝謝。

回答

1

我和你有同樣的問題,並且無處不在尋找解決方案。

在我的情況下,它似乎是Apache的錯。 Apache正在刪除標題「Authorization:Bearer TOKEN_HERE」,所以auth:api不能按預期工作(獲得401未授權)。

我們最終想加入到我們的.htaccess:

RewriteCond %{HTTP:Authorization} ^(.*) 

RewriteRule .* - [e=HTTP_AUTHORIZATION:%1] 

它神奇的工作。

我真的很希望它有幫助,我們花了一整天的時間嘗試很多解決方案,這是我們工作的一個方法。

+0

不適合我 – vietnguyen09

1

其中grant_type是否用於生成此令牌?

可能的解決方法如下所示

1:如果您正在使用的客戶端憑證生成您的access_token,你必須打開client_credentials,中間件如下。

1.1添加到routeMiddleware在\軟件\ HTTP \ Kernel.php

'client_credentials'  => \Laravel\Passport\Http\Middleware\CheckClientCredentials::class, 

1.2使用 'client_credentials' 中間件在你的路線了。

Route::group(['prefix' => 'v1','middleware' => 'client_credentials'], function() { 

    // Your routes here 

}); 

2:格蘭特 - 輸入密碼

2.1:創建一個密碼授予客戶端

PHP工匠護照:客戶--password

2。2:請求令牌與下面的頭字段

'grant_type' => 'password', 
    'client_id' => 'client-id', 
    'client_secret' => 'client-secret', 
    'username' => '[email protected]', 
    'password' => 'my-password', 

末點/的OAuth /令牌

你現在得到應該給你訪問到您的API令牌。

相關問題