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

问题描述 投票:0回答:1

我将使用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。

php laravel authentication jwt
1个回答
1
投票

你应该在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']);

        }
    }

希望这会帮助你。

© www.soinside.com 2019 - 2024. All rights reserved.