You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel+NextJs JWT鉴权:Access与Refresh Token需相同载荷吗?

Laravel + Next.js JWT 认证疑问解答

背景与现有实现

我正在使用Laravel和NextJs开发应用,采用JWT实现认证与授权,登录方法实现如下:

public function login(LoginRequest $request): AuthResource | \Illuminate\Http\JsonResponse
{
    $credentials = $request->only(['email', 'password']);
    $token = auth()->attempt($credentials, true);

    if (!$token) {
        return AuthResource::errors(
            ['auth.credentials.failed' => trans('auth.failed')]
        );
    }

    $jwt = "Bearer {$token}";
    $user = $request->user();
    $refreshToken =  $this->setJWTCookie('access_token', $jwt, config('app.jwt_cookie_minutes'));
    $accessToken =  $this->setJWTCookie('refresh_token', $jwt, config('app.jwt_cookie_minutes'), '/refresh');

    return AuthResource::make([
        'user' => [
            'id' => $user->id,
            'first_name' => $user->first_name,
            'last_name' => $user->last_name,
            'user_name' => $user->full_name,
            'email' => $user->email
        ]
    ])->response()->withCookie($refreshToken)->withCookie($accessToken);
}

当前返回两个HttpOnly Cookie:有效期1天的Refresh Token,有效期2小时的Access Token,针对以下两个疑问给出解答:


问题1:Access Token与Refresh Token是否应包含相同的声明和数据?还是仅Refresh Token需携带重要数据?

两者定位不同,声明和数据需要做区分:

  • Access Token是短期业务令牌,只需要携带接口鉴权必需的核心信息,比如用户ID、角色标识、权限范围这类直接用于业务接口校验的字段,尽量精简体积,提升传输和解析效率,别塞冗余信息。
  • Refresh Token是长期刷新凭证,只需要携带能验证用户身份、令牌合法性的基础信息(比如用户ID、令牌唯一ID),不需要包含业务权限数据。因为它有效期更长,泄露风险更高,要避免放入敏感或非必要内容,聚焦于身份校验即可。

问题2:Refresh Token仅对/refresh路径有效,当Access Token过期时,是否应调用/refresh接口传入Refresh Token以生成新的Access和Refresh Token?

这是Refresh Token的标准使用流程,完全正确:

  1. 前端发起业务请求时,若收到401(Access Token过期),就携带Refresh Token调用/refresh接口。
  2. 后端验证Refresh Token的合法性(签名、有效期、路径限制等),验证通过后生成新的Access Token和新的Refresh Token(建议每次刷新都生成新的Refresh Token,旧令牌立即失效,降低被盗用风险)。
  3. 后端将新的两个令牌通过HttpOnly Cookie返回,前端后续用新Access Token发起业务请求,新Refresh Token用于下一次刷新。
  4. 若Refresh Token本身也过期,前端需要引导用户重新登录,获取新的令牌对。

内容的提问来源于stack exchange,提问作者Juan Pablo B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 07:52:38