REAPI/sdk/lib/Auth.php

64 lines
1.3 KiB
PHP
Raw Normal View History

2024-09-29 15:43:18 +08:00
<?php
/**
* 权限处理器
* Class Auth
*/
class Auth
{
/**
* time
*
* @var int
*/
const TIME = 300;
/**
* signature
*
* @return mixed
*/
public static function signature($request = array(), $type = 'sha1', $suffix = '', $empty = true)
{
ksort($request);
$signature_string = '';
foreach ($request as $k => $v) {
if (strstr($v, 'http') && !strstr($v, '%')) {
$v = urlencode($v);
}
if (!$empty) {
$signature_string .= $k . '=' . $v . '&';
} elseif (strlen($v) && $v != 'empty') {
$signature_string .= $k . '=' . $v . '&';
}
}
if ($suffix != '&') {
$signature_string = substr($signature_string, 0, -1) . $suffix;
}
return $type($signature_string);
}
/**
* nonce
*
* @return mixed
*/
public static function nonce()
{
return substr(sha1(microtime()), rand(10, 15));
}
/**
* timestamp
*
* @return mixed
*/
public static function timestamp()
{
list($msec, $sec) = explode(' ', microtime());
$msectime = (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000);
return $msectime;
}
}