
class IndexAction extends Action {
public function index() {
$token = D("wx_token")->field("add_ip", true)->select();
foreach ($token as $key => $v) {
if ($v['expire_time'] - 300 < time()) {
$url = ">}
再创建个数据表,保存就好了,整个定时任务,定时去获取比较好。
如果你定义了ACTION_SUFFIX也就是可以调用的方法的后缀,你必须要保证这里的DoController类中的share是public而且加了ACTION_SUFFIX;
具体的你可以打开ThinkPHP的log,在RunTime/Logs/Mit/20160719log中查看具
相关解释如下:
1、因为是非开放性的,所以所有的接口都是封闭的,只对公司内部的产品有效;
2、因为是非开放性的,所以OAuth那套协议是行不通的,因为没有中间用户的授权过程;
3、有点接口需要用户登录才能访问;
4、有点接口不需要用户登录就可访问;
_攵砸陨咸氐悖贫擞敕穸说耐ㄐ啪托枰2把钥匙,即2个token。
_谝桓_oken是针对接口的(api_token);
_诙_oken是针对用户的(user_token)。
每登录一次返回给接口一个token,这个token会存储在单独的表里,每次APP关系到用户的 *** 作都必须要携带token,根据token来解码出是哪个用户。这种方法也可以做其他设备登录踢出。一般都是这么个做法。token的生成类似cookie的密码加密,我是这么做的,当然有很多种方法,只要你能加密能解密就行。下面是phpcms里面的一个经典的方法,我一般拿来做cookie加密,制作token来使用。
<php/
字符串加密、解密函数
@param string $txt 字符串
@param string $operation ENCODE为加密,DECODE为解密,可选参数,默认为ENCODE,
@param string $key 密钥:数字、字母、下划线
@param string $expiry 过期时间
@return string
/
function sys_auth($string, $operation = 'ENCODE', $key = '', $expiry = 0) {
$ckey_length = 4;
$key = md5($key != '' $key : C('COOKIE_AUTH_KEY'));
$keya = md5(substr($key, 0, 16));
$keyb = md5(substr($key, 16, 16));
$keyc = $ckey_length ($operation == 'DECODE' substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';
$cryptkey = $keyamd5($keya$keyc);
$key_length = strlen($cryptkey);
$string = $operation == 'DECODE' base64_decode(strtr(substr($string, $ckey_length), '-_', '+/')) : sprintf('%010d', $expiry $expiry + time() : 0)substr(md5($string$keyb), 0, 16)$string;
$string_length = strlen($string);
$result = '';
$box = range(0, 255);
$rndkey = array();
for($i = 0; $i <= 255; $i++) {
$rndkey[$i] = ord($cryptkey[$i % $key_length]);
}
for($j = $i = 0; $i < 256; $i++) {
$j = ($j + $box[$i] + $rndkey[$i]) % 256;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
}
for($a = $j = $i = 0; $i < $string_length; $i++) {
$a = ($a + 1) % 256;
$j = ($j + $box[$a]) % 256;
$tmp = $box[$a];
$box[$a] = $box[$j];
$box[$j] = $tmp;
$result = chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
}
if($operation == 'DECODE') {
if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26)$keyb), 0, 16)) {
return substr($result, 26);
}else{
return '';
}
}else{
return $keycrtrim(strtr(base64_encode($result), '+/', '-_'), '=');
}
}
>
php 有开发包的
getRequestToken() 方法获取临时oauth_token
在callback函数中使用 getAccessToken 获取正式token,保存到数据库,以后用正式token就可以用新浪微博账号登录了
以上就是关于自己用thinkphp做微信接口类文件,遇一个问题,GET获取到的token,如何将这个变量传递到实例化的类里面全部的内容,包括:自己用thinkphp做微信接口类文件,遇一个问题,GET获取到的token,如何将这个变量传递到实例化的类里面、thinkphp怎么生成token、php怎么将openid变成token等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)