自己用thinkphp做微信接口类文件,遇一个问题,GET获取到的token,如何将这个变量传递到实例化的类里面

自己用thinkphp做微信接口类文件,遇一个问题,GET获取到的token,如何将这个变量传递到实例化的类里面,第1张

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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/10094832.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存