cmbYouku_Api/app/middleware/FrontRequest.php

50 lines
1.8 KiB
PHP
Raw Permalink Normal View History

2024-07-01 15:57:07 +08:00
<?php
declare (strict_types=1);
namespace app\middleware;
use app\config\BusinessCacheKey;
use app\config\BusinessCode;
use app\exception\BusinessException;
use app\service\util\RedisService;
use app\util\FrontSessionUtil;
use Firebase\JWT\ExpiredException;
use Firebase\JWT\SignatureInvalidException;
class FrontRequest
{
/**
* 处理请求
*/
public function handle(\think\Request $request, \Closure $next): \think\Response
{
// $token = FrontSessionUtil::getToken();
// if (empty($token)) {
// throw new BusinessException("未登录", BusinessCode::LOGIN_INVALID);
// }
// $client = RedisService::getRedisInstance();
// if (!$client->sismember(BusinessCacheKey::FRONT_TOKEN_LIST['key'], $token)) {
// throw new BusinessException("token已过期", BusinessCode::LOGIN_INVALID);
// }
// try {
// $data = \Firebase\JWT\JWT::decode($token, new \Firebase\JWT\Key(env('jwt_token_key'), 'HS256'));
// FrontSessionUtil::setUser($data->data);
// } catch (ExpiredException $e) {
// throw new BusinessException('请重新授权登陆', BusinessCode::LOGIN_INVALID);
// } catch (SignatureInvalidException|\Throwable $e) {
// throw new BusinessException('签名验证失败', BusinessCode::LOGIN_INVALID);
// }
return $next($request);
}
public function end(\think\Response $response): \think\Response
{
$response->header([
'Access-Control-Allow-Origin' => '*',
'Access-Control-Allow-Methods' => 'GET, POST, PUT, DELETE, OPTIONS',
'Access-Control-Allow-Headers' => 'X-Requested-With, Content-Type, Accept, Origin, token,Status Code,frontToken'
]);
return $response;
}
}