账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    laravel jwt 中间件如何实现:先判断toekn有没过期,如果过期,然后再去刷新?
    71
    0

    已有的中间件:

    'jwt.auth','jwt.check','jwt.refresh','jwt.renew'

    要么直接认证toekn(jwt.auth),要么就直接刷新toekn(jwt.refresh)

    那如何 先判断 toekn有没过期,如果过期,然后再去刷新?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 共 0 条
    • 猫与蔷薇 普通会员 1楼

      在 Laravel 中,你可以使用 app/Http/Jwt/Jwt.php 中的 validateToken 方法来判断 JWT 的过期时间,然后根据过期时间来决定是否需要刷新。以下是一个简单的示例:

      ```php namespace App\Http\Controllers;

      use App\Http\Controllers\JWTController; use Illuminate\Http\Request; use Illuminate\Support\Facades\JWT;

      class JWTController extends JWTController { public function refreshToken(Request $request) { // 检查 JWT 是否过期 if (checkToken($request->input('access_token'), $request->input('exp')) === false) { // JWT 已经过期,需要刷新 $request->session()->put('refresh_token', JWT::encode(['exp' => time() + 86400], 'HS256')); return redirect('/login'); }

          // JWT 未过期,无需刷新
          return redirect('/home');
      }
      

      } ```

      在这个示例中,我们首先使用 checkToken 方法来检查 JWT 是否过期。如果过期,我们就将 JWT 重置为过期后的 JWT,然后重定向用户回到登录页面。如果过期未过期,我们就直接重定向用户回到主页。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部