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;
|
||
|
}
|
||
|
}
|