好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>CMS系统>Dedecms
<tfoot draggable='sEl'></tfoot>

php接口规范token php api token

很多站长朋友们都不太清楚php接口规范token,今天小编就来给大家整理php接口规范token,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 PHP写一个api接口,为什么需要生成一个token值 2、 php 开发接口 怎么设计token比较合适 3、 php接口怎样安全接收并验证token PHP写一个api接口,为什么需要生成一个token值

token的作用在于过滤请求来源,提高安全性.其他人拿不到token的产生规则,就无法访问接口.

校验参数

php 开发接口 怎么设计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 = $keya.md5($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 $keyc.rtrim(strtr(base64_encode($result), '+/', '-_'), '=');

    }

}

?>

php接口怎样安全接收并验证token

<?php

/*

* PHP简单利用token防止表单重复提交

* 此处理方法纯粹是为了给初学者参考

*/

session_start();

function set_token() {

 $_SESSION[‘token’] = md5(microtime(true));

}

function valid_token() {

 $return = $_REQUEST[‘token’] === $_SESSION[‘token’] ? true : false;

 set_token();

 return $return;

}

//如果token为空则生成一个token

if(!isset($_SESSION[‘token’]) || $_SESSION[‘token’]==”) {

 set_token();

}

if(isset($_POST[‘test’])){

 if(!valid_token()){

  echo "token error";

 }else{

  echo ‘成功提交,Value:’.$_POST[‘test’];

 }

}

?>

<form method="post" action="">

 <input type="hidden" name="token" value="<?php echo $_SESSION[‘token’]?>">

 <input type="text" name="test" value="Default">

 <input type="submit" value="提交" />

</form>

关于php接口规范token的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php接口规范token php api token的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did168245
更新时间:2023-04-11   阅读:26次

上一篇: php扩展dll开发手册 php扩展开发中文教程

下一篇:.php文件打开乱码 php文件打开乱码是什么原因

相关资讯

最新资料更新

  • 1.DEDECMS内容页分页过多、过长问题最佳解决方案
  • 2.织梦手机站关闭自动生成首页index.html的方法
  • 3.织梦dedecms内页、详情页中调用文章作者信息的方法
  • 4.DEDECMS在PHP5.4不能正常运行的解决方法
  • 5.dedecms模板安装教程及模板相关知识学习
  • 6.织梦dede修改关键字长度的方法
  • 7.dedecms后台登录成功后返回到登录界面的解决方法
  • 8.织梦dedecms自定义表单选项必填修改解决方法
  • 9.dedecms arclist中截取字符串的2种方法
  • 10.DedeCMS Wap.php 绑定域名的解决办法
  • 11.织梦dedeCMS二次开发文档手册 程序目录详解以及数据表结构字段
  • 12.dedecms任意页面调用栏目内容标签{dede:field.content/}的方法
  • 13.dedecms织梦模板中plus文件作用介绍及安全设置详解
  • 14.织梦dedecms获取当前栏目路径及栏目名称的方法
  • 15.dedecms网页压缩seo之gzip设置技巧
  • 16.dede搜索关键字/tag标签不能区分大写字母的临时解决方法
  • 17.Dedecms文章标题及文章摘要长度修改的方法
  • 18.dedecms 模板调用解析最简代码
  • 19.织梦dedecms配置手机wap站点并绑定二级域名
  • 20.dede查询列表中单独显示查到了多少条记录

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]