64 lines
1.3 KiB
PHP
64 lines
1.3 KiB
PHP
<?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;
|
|
}
|
|
} |