'jwt_admin', //该JWT的签发者 * 'iat'=>time(), //签发时间 * 'exp'=>time()+7200, //过期时间 * 'nbf'=>time()+60, //该时间之前不接收处理该Token * 'sub'=>'www.admin.com', //面向的用户 * 'jti'=>md5(uniqid('JWT').time()) //该Token唯一标识 * ] * @return bool|string */ public static function getToken(array $payload) { if (is_array($payload)) { $token = self::encode($payload, self::$key); return $token; } else { return false; } } /** * 验证token是否有效,默认验证exp,nbf,iat时间 * @param string $Token 需要验证的token * @return bool|string */ public static function verifyToken(string $Token) { try { self::$leeway = 60; $decoded = self::decode($Token, self::$key, ['HS256']); $arr = (array)$decoded; if ($arr['exp'] < time()) { throw new RRException("认证信息已过期, 请重新登录.", 401); } return true; } catch(\Exception $e) { throw new RRException($e->getMessage(), 401); } } }