coupon-admin/app/middleware/ApiLogin.php

38 lines
1.0 KiB
PHP
Raw Normal View History

2021-11-18 17:57:04 +08:00
<?php
namespace app\middleware;
use Closure;
use app\service\Jwt as JwtService;
2021-12-20 10:14:32 +08:00
use think\facade\Request;
2021-11-18 17:57:04 +08:00
/**
* API登录认证需要先调用JWT解析用户信息
* Class ApiLogin
* @package app\middleware
*/
class ApiLogin
{
public function handle($request, Closure $next) {
2021-12-20 10:14:32 +08:00
2021-11-18 17:57:04 +08:00
$authorization = $request->authorization ?? '';
2021-12-20 10:14:32 +08:00
2021-11-18 17:57:04 +08:00
if (empty($authorization)) {
2021-12-20 10:14:32 +08:00
return json(['code' => 6001, 'msg' => '登陆失效']);
2021-11-18 17:57:04 +08:00
}
if (!JwtService::validate($authorization)) {
return json(['code' => 6001, 'msg' => 'token验证失败或已失效']);
}
$userInfo = $request->user ?? [];
if (!isset($userInfo['user_id']) || empty($userInfo['user_id'])) {
return json(['code' => 6001, 'msg' => 'token已失效']);
}
// 自定义过期时间校验。
if(isset($userInfo['expire_time']) && time() >= $userInfo['expire_time']) {
return json(['code' => 6001, 'msg' => 'token已失效']);
}
return $next($request);
}
}