错误状态401错误未经身份验证的Laravel护照

时间:2018-10-03 06:10:47

标签: php laravel laravel-5 axios laravel-passport

这是我第一次实施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

2 个答案:

答案 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',
        ],