如何在管理表中使用jwt令牌[始终返回401]

时间:2019-04-15 15:29:44

标签: laravel

我正在使用jwt令牌:https://github.com/tymondesigns/jwt-auth

首先,我使用表admin登录。

登录后我已经获得令牌,但是如何使用?总是说“ 401未经授权”

这是我在控制器中的登录功能

public function login(Request $request)
{
   config()->set( 'auth.defaults.guard', 'admin' );
   \Config::set('jwt.user', 'App\Models\Admin');
   \Config::set('auth.providers.users.model', \App\Models\Admin::class);
   $credentials = $request->only('email', 'password');
   $token = null;

   try {
    if (! $token = JWTAuth::attempt($credentials)) {
       return response()->json(['error' => 'invalid_credentials'], 401);
    }
  } catch (JWTException $e) {
    return response()->json(['error' => 'could_not_create_token'], 500);
  }

  return response()->json(compact('token'));
}

我在邮递员中对此进行了测试后,各项工作正常。这是返回令牌。

我创建了用于测试令牌的新路径

Route::post('test', 'Api\AdminController@tests');

在控制器中,我构造了用于检查中间件的功能

public function __construct()
{
   $this->middleware('auth.jwt', ['except' => ['login']]);
}

我设置了 kernel.php

'auth.jwt' => \Tymon\JWTAuth\Http\Middleware\Authenticate::class,

这是我的测试功能

public function tests(){
  dd('s');
}

**我使用邮递员并发送带有不记名令牌的令牌,但是它不起作用

我认为错误是在kernel.php auth.jwt中,默认是在用户表中而不是在管理表中。如何解决此问题

0 个答案:

没有答案