提前封装好的函数
// 从请求信息中获取token令牌
public static function getRequestToken()
{
if (empty($_SERVER['HTTP_AUTHORIZATION'])) {
return false;
}
$header = $_SERVER['HTTP_AUTHORIZATION'];
$method = 'bearer';
//去除token中可能存在的bearer标识
return trim(str_ireplace($method, '', $header));
}
封装退出登录方法
public function logout(){
//取出token值
$token=Jwt::getRequestToken();
//查看缓存中是否有存在delete_token这个键
$delete_token=cache('delete_token')?:[];
//将token值放入delete_token数组中
$delete_token[]=$token;
// 将数组塞回缓存中
cache('delete_t0ken',$delete_token);
// 销毁成功
return success();
}
中间件验证token值
在生成好的中间件中书写
/**
* 处理请求
*
* @param \think\Request $request
* @param \Closure $next
* @return Response
*/
public function handle($request, \Closure $next)
{
// 接收token值
$token=Jwt::getRequestToken();
// 验证token值
$res=Jwt::verifyjwt($token);
// 判断中间件
if ($res != "ok"){
return fail($res);
}
return $next($request);
}
完成之后可以根据自己需求使用全局注册中间件或者路由中间件