如何在laravel 5.5中使用令牌从JWTAuth获取用户

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在laravel 5.5中使用令牌从JWTAuth获取用户相关的知识,希望对你有一定的参考价值。

我将使用JWTAuth从模型创建令牌。所以我用这个方法:

$token = JWTAuth::fromUser($user);

在我的api路线中,我有:

Route::post('login', 'AuthController@login');

Route::group([

    'middleware' => 'jwt.auth',
    'prefix' => 'auth'

], function ($router) {

    Route::post('logout', 'AuthController@logout');
    Route::post('refresh', 'AuthController@refresh');
    Route::get('me', 'AuthController@me');
});

现在我应该有权从JWTAuth获取用户。然后我用:

$user = JWTAuth::parseToken()->authenticate();

但它返回false。

答案

你应该在api.php中使用

Route::post('user', 'UserController@createUser');

并在你的控制器

public function getAuthUser(Request $request) {
        try {

            if (!$user = JWTAuth::toUser($request->token)) {
                return response()->json(['code' => 404, 'message' => 'user_not_found']);
            } else {

                $user = JWTAuth::toUser($request->token);
                return response()->json(['code' => 200, 'data' => ['user' => $user]]);
            }
        } catch (Exception $e) {

            return response()->json(['code' => 404, 'message' => 'Something went wrong']);

        }
    }

希望这会帮助你。

以上是关于如何在laravel 5.5中使用令牌从JWTAuth获取用户的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.5 密码重置令牌表单未出现

在 laravel 5.5 的验证 csrf 令牌中没有收到错误令牌不匹配异常

Laravel 5.5 自定义重置密码抛出令牌不匹配

如何在 laravel 中使用不记名令牌从 api 请求中获取响应?

如何从 Laravel Passport 中的刷新令牌中获取 id?

Laravel Passport API:检索经过身份验证的令牌