Merge branch 'master' of http://111.229.174.37:3000/Food/food_server
This commit is contained in:
commit
a25bf01da6
@ -75,6 +75,7 @@ class PublicController extends Controller
|
||||
'iat' => $currtime, // 签发时间(时间戳)
|
||||
'iss' => 'jwt_admin', // 签发者
|
||||
'nbf' => $currtime, // 在此时间之前不可用 (这里是2秒以内)
|
||||
'exp' => strtotime('tomorrow'), //过期时间 到第二天凌晨
|
||||
'exp' => $currtime + 20, //过期时间 到第二天凌晨
|
||||
'openid' => $openid,
|
||||
'session_key' => $session_key,
|
||||
|
@ -16,32 +16,30 @@ class PublicController extends Controller
|
||||
{
|
||||
header("Access-Control-Allow-Origin: " . C('LimitApi')); //请求域名限制
|
||||
header('Access-Control-Allow-Headers:Token'); //token请求头
|
||||
// token 验证
|
||||
$server = isset($_SERVER) ? $_SERVER : "";
|
||||
$token = isset($server['HTTP_TOKEN']) && is_string($server['HTTP_TOKEN']) ? $server['HTTP_TOKEN'] : null;
|
||||
// 如果 token 不存在,可以返回错误信息
|
||||
if (!$token) {
|
||||
echo json_encode(array('status' => -1, 'msg' => 'Token 不存在或无效!'));
|
||||
exit();
|
||||
}
|
||||
$jwtKey = C('jwtKey'); // jwt密钥
|
||||
// 获取请求头中的 Token
|
||||
$token = isset($_SERVER['HTTP_TOKEN']) ? $_SERVER['HTTP_TOKEN'] : null;
|
||||
// 获取 jwt 密钥
|
||||
$jwtKey = C('jwtKey');
|
||||
try {
|
||||
// 使用密钥和 HS256 算法对 JWT 进行解码
|
||||
$jwt = JWT::decode($token, new Key($jwtKey, 'HS256'));
|
||||
$res_token = (array) $jwt; // 将解码后的对象转换为数组
|
||||
// token过期
|
||||
if (empty($res_token)) {
|
||||
echo json_encode(array('status' => -1, 'msg' => '帐号认证过期!'));
|
||||
// 解码 JWT Token
|
||||
$decoded = JWT::decode($token, new Key($jwtKey, 'HS256'));
|
||||
// Token 没有过期,继续处理 token验证通过 获取shop_id
|
||||
$this->tokenShop_id = $decoded->shop_id;
|
||||
} catch (\Firebase\JWT\ExpiredException $e) {
|
||||
// Token 过期
|
||||
echo json_encode(array('status' => -1, 'msg' => 'Token 已过期'));
|
||||
exit();
|
||||
}
|
||||
// token验证通过 获取shop_id
|
||||
$this->tokenShop_id = $res_token['shop_id'];
|
||||
} catch (Exception $e) {
|
||||
// 捕获解码过程中可能的异常,并返回错误信息
|
||||
echo json_encode(array('status' => -1, 'msg' => 'Token 无效: ' . $e->getMessage()));
|
||||
} catch (\Exception $e) {
|
||||
// 其他 JWT 解码错误
|
||||
echo json_encode(array('status' => -1, 'msg' => 'Token 解码失败'));
|
||||
exit();
|
||||
} catch (\TypeError $e) {
|
||||
// 处理 Token 为 null 或者不是字符串的情况
|
||||
echo json_encode(array('status' => -1, 'msg' => 'Token 无效'));
|
||||
exit();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 总管理员 可接收任何shop_id 非总管理员 只可以调用自身shop_id 否则会中断
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user