我正在使用Laravel 5.5 + Passport構建REST用戶微服務。 我使用標準的Passport :: routes(),但我不得不修改Auth :: routes以使它們返回JSON響應,並使它們與Passport協同工作。Laravel REST API - 無限循環
我加入以下行我路/ web.php文件:
Route::group(['middleware' => 'auth:api'], function() {
$this->post('logout', 'Auth\[email protected]')->name('logout');
});
這讓我POST https://myapi/logout
- 如果我做其標題叫「授權=>持票人TOKEN「,我得到了一個成功的註銷響應。
- 如果我不提供頭可言,我得到一個「未驗證」的消息(這是好的)
- 但是,如果我提供一個撤銷令牌的頭,我得到的函數的遞歸死循環:
Illuminate\Auth\RequestGuard->user()
(它讓一個自稱遞歸直到堆棧溢出)
這在auth:api
中間件全部完成,沒有達到我的註銷代碼,但我的LoginController構造是調用。構造函數代碼:
public function __construct(Application $app)
{
$this->apiConsumer = $app->make('apiconsumer');
$this->middleware('guest')
->except('logout');
}
我掙扎理解,如果是我的代碼導致此問題,或Laravel +護照+ AUTH的某種組合。
我的第一個想法是,auth:api中間件無法對用戶進行身份驗證,並因此將用戶重定向到/ home,因爲某種原因,它會以遞歸方式再次觸發。但是,如果是這種情況,爲什麼它沒有標題正確工作?
我目前的想法是,有問題的標記確實存在於數據庫中,但Laravel未能發現它已被吊銷。
任何建議表示讚賞,
您是否嘗試通過輸入'Passport :: routes();'方法來移除註銷路由,並在'boot()'方法的'AuthServiceProvider.php'中的文檔中聲明'passport'路由? –
我沒有,我會手動重新實現auth註銷方法嗎? – mils