在Laravel 7后端,我有一些api网址,例如:
puckImg.animate().translationXBy(100).setDuration(300);
puckImg.animate().translationXBy(30).setDuration(2000);
puckImg.animate().translationXBy(90).setDuration(5000);
路由/ logout和/ profile / 1正常工作,而路由/ logout / all则给出错误:
Route::group(['namespace' => 'Api', 'middleware' => ['auth:sanctum']], function(){
Route::post('logout/all', 'Auth\LoginController@logoutAll');
Route::post('logout', 'Auth\LoginController@logout');
Route::put('profile/{profile}', 'ProfileController@update');
});
我使用的令牌是正确的,因为我可以将其用于其他路由并且可以使用。
当然,在尝试/ logout / all之前,我没有调用/ logout。
我试图更改logoutAll的控制器功能,将其设置为“ logout”:
{
"error": "Unauthenticated"
}
以这种方式工作,但是调用了相同的功能。
那是函数的代码:
Route::group(['namespace' => 'Api', 'middleware' => ['auth:sanctum']], function(){
Route::post('logout/all', 'Auth\LoginController@logout');
Route::post('logout', 'Auth\LoginController@logout');
Route::put('profile/{profile}', 'ProfileController@update');
});
请帮助我。
更新
如果我使用CURL命令,则输出为:
public function logout(Request $request)
{
Auth::user()->tokens()->where('id', Auth::user()->currentAccessToken()->id)->delete();
return response()->json(['data' => 'User logged out.'], 200);
}
public function logoutAll(Request $request)
{
//do nothing
return response()->json(['data' => 'User loggedAll out.'], 200);
}
答案 0 :(得分:2)
问题出在__constructor()方法中
$this->middleware('guest')->except('logout');
我将其更改为:
$this->middleware('guest')->except(['logout', 'logoutAll']);
现在可以正常工作了。