thinkphp接口appid和appsecret怎么生成和检测

 我来答
化清和
2016-11-25 · 建造师
化清和
采纳数:2256 获赞数:6975

向TA提问 私信TA
展开全部

路大概就是这样,下面我提供了完整的参考代码,如果有更好的方法,也请指教

<?php

namespace Home\Controller;

use Think\Controller;

class IndexController extends Controller {

    public $appid = 'dmm888';    

    public $appsecret = '

    public function index(){

        $this->show('<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} body{ background: #fff; font-family: "微软雅黑"; color: #333;font-size:24px} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.8em; font-size: 36px }</style><div style="padding: 24px 48px;"> <h1>:)</h1><p>欢迎使用 <b>ThinkPHP</b>!</p><br/>[ 您现在访问的是Home模块的Index控制器 ]</div><script type="text/javascript" src=" charset="UTF-8"></script>','utf-8');

    }

    public function  test(){

        if(!isset($_GET['token'])){

            $this->apiReturn(4001,'invalid token');

        }else if(!S($_GET['token'])){            

            $this->apiReturn(4001,'invalid token');

        }

        $data = array(

            'id'=>2,

            'username'=>'明之暗夜',

            'info'=>array('age'=>24,'address'=>'学府路','url'=>'

        );

        if($data){

            $this->apiReturn(200,'读取用户信息成功',$data,xml);

        }

    }

    public function getToken(){

        $ori_str = S($this->appid.'_'.$this->appsecret);   //这里appid和appsecret我写固定了,实际是通过客户端获取  所以这里我们可以做很多 比如判断appid和appsecret有效性等

        if($ori_str){       //重新获取就把以前的token删除

            S($ori_str,null);

        }

        //这里是token产生的机制  您也可以自己定义

        $nonce = $this->createNoncestr(32);

        $tmpArr = array($nonce,$this->appid,$this->appsecret);

        sort($tmpArr, SORT_STRING);

        $tmpStr = implode( $tmpArr );

        $tmpStr = sha1( $tmpStr );

        // echo $tmpStr;

        //这里做了缓存 'a'=>b 和'b'=>a格式的缓存

        S($this->appid.'_'.$this->appsecret,$tmpStr,7200);  

        S($tmpStr,$this->appid.'_'.$this->appsecret,7200);

    }

     /**

     *  作用:产生随机字符串,不长于32位

     */

     function createNoncestr( $length = 32 ) 

    {

        $chars = "abcdefghijklmnopqrstuvwxyz0123456789";  

        $str ="";

        for ( $i = 0; $i < $length; $i++ )  {  

            $str.= substr($chars, mt_rand(0, strlen($chars)-1), 1);  

        }  

        return $str;

    }     

}

 具体怎么验证我就不用写了吧,这样我们只需把appid和appsecret给app前端开发者 并告诉他怎么用就可以了 token就是唯一令牌  只有token有效才可以向下执行  从而安全性可以得到一定保证   

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式