您当前的位置:首页 > 网站建设 > 帝国cms
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax | jQuery |

$tokenapi为例说明。在线演示

51自学网 2020-03-09 21:03:55
  帝国cms
未通过验证,请点击下面生成的新连接测试
======================= 配置信息 ==========================

超时设置: (30)秒

token变量名: (token)

时间戳变量名: (t)

加密key: (mtizna6ium6ium5pyj)

======================= 验证信息 ==========================

生成时间: 2017-06-22 10:51:16

验证时间: 2020-03-09 21:13:00

验证结果: 0  (-1:超时 ,0:失败 , 1:成功)

新的请求地址 : http://dgapi.cmsxy.com/e/extend/api/index.php?m=demo&c=token&id=1&page=1&t=1583759580&token=26f53dd613bb49342472b835e62d0d83 (测试新的地址请点击,否则刷新(F5)此页)

======================= 如何生成token ==========================

token是由所有GET数据(除去 token变量 , 模块 , 控制器),通过键的升序排列 , 然后添加上 &token=[token的key] 进行md5加密

示例

假定一个接口,我们需要传入id,page两个参数,那么我们生成token需要用到的参数就有三个 id,page 以及时间戳参数t(可以在配置中自由设置)

通过对参数的排序与组合生成的字符串是 : id=1&page=1&t=1498097264

然后需要在最后拼接上 &token=mtizna6ium6ium5pyj (mtizna6ium6ium5pyj)是不可见的,在配置中自由设置

最后在结果就是 id=1&page=1&t=1498097264&token=mtizna6ium6ium5pyj 使用MD5方式加密后就是: 12b354b0d3335a456fb46f69322e11ec

最终api的请求完整参数就是 m=demo&c=token&id=1&page=1&t=1498097264&token=12b354b0d3335a456fb46f69322e11ec

======================= 示例代码 ==========================
 
<?php
defined("api_m") or exit;
header('Content-Type: text/html; charset=utf-8');

//加载token类,并定义参数
$tokenapi = $api->load('token' , 
	array(
		'timeout' => 30 , //超时设置
		'key' => 'mtizna6ium6ium5pyj' //加密key
	)
);

$arr = array(
	'm' => api_m,
	'c' => api_c,
	'id' => $api->get('id' , 1 , 'intval'),
	'page' => $api->get('page' , 1 , 'intval'),
	't' => $api->get('t')
);

$ispass = $tokenapi->check();
$error = array(
'-1' => '超时了,请点下面生成的连接重新测试',
'0' => '未通过验证,请点击下面生成的新连接测试',
'1' => '<span style="color:#fff;">验证成功,刷新此页,可配合验证信息中的时间,观察超时情况,若对参数有任何的修改,将会验证失败</span>'
);
echo '<div style="background:'.($ispass === 1 ? 'green' : 'yellow').';color : #000; padding:10px; text-align:center;">'.($error[$ispass]).'</div>';
echo '======================= 配置信息 ==========================<br/><br/>';
echo '超时设置: (' . $tokenapi->timeout . ')秒<br/><br/>';
echo 'token变量名: (' . $tokenapi->token . ')<br/><br/>';
echo '时间戳变量名: (' . $tokenapi->time . ')<br/><br/>';
echo '加密key: (' . $tokenapi->key . ')<br/><br/>';
echo '======================= 验证信息 ==========================<br/><br/>';


echo '生成时间: ' . date('Y-m-d H:i:s' , (int)$api->get($tokenapi->time));
echo '<br/><br/>验证时间: ' . date('Y-m-d H:i:s');
echo '<br/><br/>验证结果:  '. $ispass .'  (-1:超时 ,0:失败 , 1:成功)';



$arr['t'] = time(); //更新时间
$url = 'http://dgapi.cmsxy.com/e/extend/api/index.php?'.$tokenapi->query($arr);
echo '<br/><br/>新的请求地址 : <a href="'.$url.'">'.$url.'</a> (测试新的地址请点击,否则刷新(F5)此页)';

echo '<br/><br/>======================= 如何生成token ==========================<br/><br/>';
echo 'token是由所有GET数据(除去 token变量 , 模块 , 控制器),通过键的升序排列 , 然后添加上 &token=[token的key] 进行md5加密<br/><br/>';
echo '示例<br/><br/>假定一个接口,我们需要传入id,page两个参数,那么我们生成token需要用到的参数就有三个 id,page 以及时间戳参数'.$tokenapi->time.'(可以在配置中自由设置)<br/><br/>';
echo '通过对参数的排序与组合生成的字符串是 : <span style="color:red;">id=1&page=1&t=1498097264</span><br/><br/>';
echo '然后需要在最后拼接上 <span style="color:red;">&token='. $tokenapi->key .'</span> ('. $tokenapi->key .')是不可见的,在配置中自由设置<br/><br/>';
$token = md5('id=1&page=1&t=1498097264&token=mtizna6ium6ium5pyj');
echo '最后在结果就是 <span style="color:red;">id=1&page=1&t=1498097264&token='. $tokenapi->key .'</span> 使用MD5方式加密后就是: '.$token.'<br/><br/>';
echo '最终api的请求完整参数就是 m='.api_m.'&c='.api_c.'&'.'id=1&page=1&t=1498097264&'.$tokenapi->token.'='.$token;


//下面为获取示例代码,复制到本地测试时,可以删除
echo '<br/><br/>======================= 示例代码 ==========================<br/><br/>';
echo '<pre style="border:1px solid #ddd; background-color:#f8f8f8; padding:10px; font-size:12px;">'. htmlspecialchars(@file_get_contents('./demo/token.php')) .'</pre>';

下载地址:
帝国cms记录会员浏览信息的插件
利用帝国万能api接口插件开发核心说明
51自学网,即我要自学网,自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1