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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    关于php-jwt过期时间的问题
    33
    0

    jwt 荷载信息中包含一个exp,说明文档说这个是 jwt 的过期时间,可是我设置了exp却没有效果,难道要自己另外写代码获取这个这个exp值来设置过期时间吗,还有 jwt 荷载信息里的内容要如何获取呢?第一次用 JWT 没有头绪。

    另 我用的jwt库是:https://github.com/firebase/p...

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 孤单一人 普通会员 1楼
      在使用PHP-JWT(JSON Web Tokens)进行用户身份验证时,JWT通常包含一个过期时间的声明,该声明被称为"exp"(expiration time)。这个声明是一个Unix时间戳,表示在这个时间点之后,JWT将不再被视为有效。 例如,在生成JWT时,你可以设置一个过期时间: ```php use Firebase\JWT\JWT; $key = "your_secret_key"; $payload = array( "iss" => "your_issuer", "aud" => "your_audience", "iat" => time(), // 发行时间 "nbf" => time() + 10, // 生效时间,这里示例为现在+10秒 "exp" => time() + 3600, // 过期时间,这里示例为现在+1小时 "data" => array( "userId" => 123 ) ); $jwt = JWT::encode($payload, $key); ``` 在验证JWT时,你需要检查"exp"声明是否已过期: ```php try { $decoded = JWT::decode($jwt, $key, ['HS256']); // 如果此处能执行,则说明JWT未过期 } catch (\Firebase\JWT\ExpiredException $e) { // 抛出此异常则表示JWT已经过期 echo $e->getMessage(); } ``` 这样就可以确保JWT在指定的时间段内有效,超过这个时间段后,需要重新获取新的JWT。
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部