我正在为我的laravel 6项目实现JWT令牌。我已按照本教程进行操作,并成功配置了应用程序以使用JWT。我还可以使用返回JWT令牌的auth()->attempt($credentials)
登录。
现在,当我尝试访问任何其他api路由并在请求标头中发送jwt令牌进行授权时,它总是返回401 (Unauthorized)
。
这是我的代码
api.php
Route::group([
'prefix' => 'auth'
], function ($router) {
Route::post('login', 'Auth\React\RAuthController@login');
Route::post('get_user_pages', 'Auth\React\RAuthController@getUserPages');
});
axios请求
const response = await axios.post('http://127.0.0.1:8000/api/auth/get_user_pages', {}, {
headers: {"Authorization": `Bearer ${cookie.load('token')}`}
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
控制器功能
public function getUserPages()
{
$auth_user_id = auth()->id();
$user_role_id = User::find($auth_user_id)->roles->makeHidden('pivot')->pluck('id')->first();
return $user_pages = ROLE::find($user_role_id)->pages->toArray();
}
我不知道何时可以访问登录路由,为什么不访问其他路由?
答案 0 :(得分:0)
尝试编辑路线
Route::group([
'middleware' => 'api',
'prefix' => 'auth'
], function ($router) {
Route::post('login', 'Auth\React\RAuthController@login');
Route::post('get_user_pages', 'Auth\React\RAuthController@getUserPages');
});
内部config/auth.php
文件:
'guards' => [
'api' => [
'driver' => 'jwt',
'provider' => 'users',
],
],