You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.1 KiB
49 lines
1.1 KiB
<?php |
|
|
|
//declare(strict_types=1); |
|
|
|
//生成token |
|
function FunCreateToken($userRoleId, $userName) |
|
{ |
|
$nowTime = time(); |
|
$startTime = $nowTime; |
|
$endTime = $startTime + 86400; |
|
$part1 = $userRoleId . '.' . $userName . '.' . $startTime . '.' . $endTime; |
|
$part2 = hash_hmac('md5', $part1, SIGNATURE); |
|
return $part1 . '.' . $part2; |
|
} |
|
|
|
//校验token |
|
function FunCheckToken($token) |
|
{ |
|
//判断是否为空 |
|
if (!isset($token) || empty($token)) { |
|
FunMessageExit(401, 0, '非法请求'); |
|
} |
|
|
|
//校验token格式 |
|
if (substr_count($token, '.') != 4) { |
|
FunMessageExit(401, 0, '非法请求'); |
|
} |
|
|
|
$arr = explode('.', $token); |
|
|
|
//校验token格式 |
|
foreach ($arr as $value) { |
|
if (trim($value) == '') { |
|
FunMessageExit(401, 0, '非法请求'); |
|
} |
|
} |
|
|
|
//检验token内容 |
|
$part1 = hash_hmac('md5', $arr[0] . '.' . $arr[1] . '.' . $arr[2] . '.' . $arr[3], SIGNATURE); |
|
$part2 = $arr[4]; |
|
if ($part1 != $part2) { |
|
FunMessageExit(401, 0, '非法请求'); |
|
} |
|
|
|
//校验是否过期 |
|
if (time() > $arr[3]) { |
|
FunMessageExit(401, 0, '登录过期'); |
|
} |
|
}
|
|
|