1、Token授权机制,用户使用用户名密码登录后,服务器将Token返回给客户端。
2、时间戳超时机制,用户每次请求都会带上当前时间戳timestamp。
服务器收到timestamp后,与当前时间进行比较,如果时间差大于一定时间(例如5分钟),则认为请求无效。时间戳超时机制是防御DOS攻击的有效手段。
3、签名机制。
在Token和时间戳中加入其他请求参数,然后用MD5或SHA-1算法加密。
实例
/** * @desc 接受参数处理 */ private function dealParam(){ //接受header参数--系统参数 $systemParam=getAllHeadersParam(); //接受body数据--业务参数(json格式) $data=file_get_contents('php://input'); //读取配置文件中的私钥信息 $api_apiKey=C('api_apiKey'); $privatekey=$api_apiKey[$systemParam['token']]; $arr['token'] =$systemParam['token']; //服务端分配的标识(不同客户端需使用不同的标识) $arr['timestamp']=$systemParam['timestamp']; //时间戳,UTC时间,以北京时间东八区(+8)为准 $arr['version'] =$systemParam['version']; //版本号 $arr['sign'] =$systemParam['sign']; //签名 $arr['source'] =$systemParam['source']; //来源(0-安卓/1-IOS/2-H5/3-PC/4-php/5-java) $arr['data'] =json_decode($data,true); //业务参数json格式 $arr['method'] =$data['method']; //访问接口,格式:模型名.方法名 return $arr; }
高效分页:Pagerfanta 助力你的 PHP 项目
Laravel开发中如何提升Model方法的代码提示效率?
在PHP开发中进行代码版本管理与团队协作,可以遵循以下步骤和工具:版本控制系统:Git:这是最常用的分布式版本控制系统。使用Git,你可以跟踪代码的变化,创建分支来进行功能开发,并轻松地合并这些变化。GitHub 或 GitLab:这些平台不仅提供Git仓库托管,还提供了强大的协作工具,如代码审查(Pull Requests)、问题跟踪(Issues)和持续集成(CI/CD)等。分支策略:Git Flow:这是一种常用的分支管理策略,包含主分支(master)、开发分支(develop)、功能分支(fea
Windows下PHP -v命令一闪而过是什么原因?
Composer使用时如何解决PHP配置openssl扩展错误?
MySQL如何使用正则表达式替换特定字符串及其后续内容?