这是我第一次实施laravel护照
这是我的config/auth.php
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
],
这是我的routes/api.php
所保护的auth:api
Route::group(['middleware' => ['auth:api']], function () {
Route::resource('users','Users\AdminUsersController')->except([
'create', 'edit'
]);
});
这就是我获取api的方式
fetchUsers: async function(page_url){
await axios.get('api/users')
.then( response => {
vm.users = response.data.data;
})
.catch( error => {
console.log(error);
});
},
我正在获取未经身份验证的状态401错误。我怎样才能解决这个问题? TIA
答案 0 :(得分:0)
用户登录后,您想传递其令牌。
$user = Auth::user();
return response()->json([
'message'=>'You are logge in.',
'token'=>$user->createToken('MyApp')->accessToken;
]);
并且您希望在用户登录后发送数据时将该令牌作为http标头发送。 Laravel通过此令牌获取记录的用户详细信息。这是标题。
'Authorization: Bearer '+token_when_logged_in
这是在axios中设置标头的方式(我对axios不熟悉)
const instance = axios.create({
baseURL: 'https://some-domain.com/api/',
headers: {'X-Custom-Header': 'foobar'}
});
答案 1 :(得分:0)
在您的 Kernel.php 文件和受保护的$ middlewareGroups 中,注释或删除以下内容中的'auth:api':
'api' => [
'throttle:60,1',
'bindings',
//'auth:api',
],