php token 验证,PHP如何实现Token验证

3147c993a35e4f5817c23ced8fe0b0a8.png

PHP如何实现Token验证

首先将Token进行解析;然后根据解析出来的信息部分验证是否过期,如果未过期再将解析出的信息部分进行加密;最后将加密出来的数据和解析出来签名进行比对,如果相同则验证成功。

示例代码:<?php

function check_token($token) {

/**** api传来的token ****/

if(!isset($token) || empty($token)) {

$msg['code']='400';

$msg['msg']='非法请求';

return json_encode($msg,JSON_UNESCAPED_UNICODE);

}

//对比token

$explode = explode('.',$token);

//以.分割token为数组

if(!empty($explode[0]) && !empty($explode[1]) && !empty($explode[2]) && !empty($explode[3]) ) {

$info = $explode[0].'.'.$explode[1].'.'.$explode[2];

//信息部分

$true_signature = hash_hmac('md5',$info,'siasqr');

//正确的签名

if(time() > $explode[2]) {

$msg['code']='401';

$msg['msg']='Token已过期,请重新登录';

return json_encode($msg,JSON_UNESCAPED_UNICODE);

}

if ($true_signature == $explode[3]) {

$msg['code']='200';

$msg['msg']='Token合法';

return json_encode($msg,JSON_UNESCAPED_UNICODE);

} else {

$msg['code']='400';

$msg['msg']='Token不合法';

return json_encode($msg,JSON_UNESCAPED_UNICODE);

}

} else {

$msg['code']='400';

$msg['msg']='Token不合法';

return json_encode($msg,JSON_UNESCAPED_UNICODE);

}

}

推荐教程:《PHP教程》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/277439.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于Linux fontconfig 字体库的坑

01、安装字体软件yum -y install fontconfig然后把字体拷过去就行了 cd /usr/share/fonts fc-list 这是查看02、拷贝字体到指定目录 cp simsun.ttc /usr/share/fonts/然后把字体拷过去就行了 cd /usr/share/fonts 03、验证字体安装情况 fc-list //"宋体"中文字体…

满江红.互联网

小小寰球&#xff0c;有多少信息瞬抵。互联网&#xff0c;几多涛生&#xff0c;几多云逸。蚂蚁缘槐近大国&#xff0c;菜鸟搭枝成凤翼。正台风绿叶下临安&#xff0c;何足惧?多少事&#xff0c;从来急&#xff1b;天地转&#xff0c;光阴隙。一百年太久&#xff0c;只争朝夕。…

Python startswith()函数 与 endswith函数

函数&#xff1a;startswith() 作用&#xff1a;判断字符串是否以指定字符或子字符串开头一、函数说明语法&#xff1a;string.startswith(str, beg0,endlen(string)) 或string[beg:end].startswith(str)参数说明&#xff1a;string&#xff1a; 被检测的字符串str&#xff1a;…

GitLab 在多分支中的一个push

情景&#xff1a;a.本地库新建的分支&#xff0c;而Git服务器没有这个分支服务器分支master本地新建分支&#xff1a;rdar-MS&#xff0c;并git checkout rdar-MS上masterrdar-testrdar-MS更改rdar-MS分支上的文件&#xff0c;git add .git commit -m " "后&#xf…

php post 获取xml,php 获取post的xml数据并解析示例

这篇文章主要为大家详细介绍了php 获取post的xml数据并解析示例&#xff0c;具有一定的参考价值&#xff0c;可以用来参考一下。对php获取post过来的xml数据并解析感兴趣的小伙伴&#xff0c;下面一起跟随512笔记的小编两巴掌来看看吧&#xff01;如何获取请求的xml数据,对方通…

值得一用的Windows软件

该清单仅本人使用后所作推荐&#xff0c;可能会比较主观&#xff0c;所以仅供参考哈。可能某些软件链接会失效&#xff0c;可以自行百度搜索下载即可。 杀软 火绒安全&#xff1a;国内杀毒软件的一股清流&#xff0c;界面简洁&#xff0c;无推广。现在已经开启了 5.0 公测&…

《JavaScript模式》读书笔记一:基本技巧

《JavaScript模式》的读书笔记&#xff0c;个人向&#xff01;更新进度随我的阅读进度 基本技巧 尽量少用全局变量 防止变量污染注意JS变量提升问题尽量使用单一var模式&#xff0c;只使用一个var在函数顶部进行变量声明function fun () {var a 1,b2,sum ab,函数体//} for循环…

Python字符串处理全攻略(四):常用内置方法轻松掌握

文章目录 引言Python字符串常用内置方法切片功能介绍语法示例注意事项 str.isalpha()功能介绍语法示例注意事项 str.isdigit()功能介绍语法示例注意事项总结 str.isalnum()功能介绍语法示例注意事项总结 str.isupper()功能介绍语法示例注意事项 islower()功能介绍语法示例注意事…

php空间限制磁盘限额,ORA-01536:超出表空间XXXX的空间限额

问题描述&#xff1a;在FMIS2600用户下进行某个DDL或DML操作时&#xff0c;提示&#xff1a;ORA-01536&#xff1a;超出表空间FMIS2600 的空间限额 或者 ORA-01950: 对表空间/*******************ORA-01536&#xff1a;超出表空间XXXX的空间限额*******************//*********…

01爬虫基本原理及Requests库下载

一、爬虫基本原理 1.什么是爬虫 ​ 爬虫就是爬取数据 2.什么是互联网&#xff1f; ​ 就是由一堆网络设备&#xff0c;把一台台的电脑互联在一起 3.互联网建立的目的 ​ 数据的传递和数据共享 4.什么是数据&#xff1f; ​ 例如&#xff1a; ​ 电商平台的商业信息&#xff08;…

php 怎么实现收藏功能,php收藏功能如何实现

php收藏功能如何实现php收藏功能的实现方法&#xff1a;首先创建好数据库表 &#xff1b;然后创建前台代码&#xff0c;实现登录界面&#xff1b;接着通过html实现收藏样式&#xff1b;最后使用php进行后台处理即可。推荐&#xff1a;《PHP视频教程》这是数据库表话不多说上代码…

quartus FIR仿真笔记

第一章&#xff1a; 最近百度了一些fir滤波器的资料&#xff0c;都没有自己想要的。容我吐槽一大段文字> 在旧版的quartus中&#xff0c;比如13.0&#xff0c;有两个fir滤波器的选项&#xff0c;如下所示&#xff1a; 网上很多都是讲不带II的那个&#xff0c;而在新版的quar…

关于时钟

/** * 时间获取 * * param mGITime 控件 * param context 承接上下文 */public void endTime(GeneralInput mGITime, Context context) { TimePickerDialog tp new TimePickerDialog(context, (view12, hourOfDay, minute) -> { StringBuilder sb new StringBui…

LVS + Keepalived 双机热备+DR模式

简介 Keepalived 起初是专门针对 LVS 设计的一款强大的辅助工具&#xff0c;主要用来提供故障切换和健康检查&#xff08; Health Checking &#xff09;功能——判断 LVS 负载调度器、节点服务器的可用性&#xff0c;及时隔离并替换为新的服务器&#xff0c;当故障主机恢复后就…

php程序layer,php 提交表单 关闭layer弹窗iframe的实例讲解

介绍一款非常好用的前端弹窗插件&#xff1a;根据官方的API&#xff1a;layer的iframe弹窗//iframe层-父子操作layer.open({type: 2,area: [700px, 530px],fix: false, //不固定maxmin: true,content: test/iframe.html});这里以php开发为例 演示如何 提交表单后自动关闭layer弹…

Django之 RESTful规范

RESTful 规范 一、什么是RESTful REST与技术无关&#xff0c;代表的是一种软件架构风格&#xff0c;REST是Representational State Transfer的简称&#xff0c;中文翻译为“表征状态转移”REST从资源的角度类审视整个网络&#xff0c;它将分布在网络中某个节点的资源通过URL进行…

php编译 ftp,无需重新编译php加入ftp扩展的解决方法

首先&#xff0c;进入源码目录cd php-5.2.13/ext/ftp#运行phpize生成configure/usr/local/php/bin/phpize#编译,指定php-config,注意这里的php-config,不是php.ini./configure --with-php-config/usr/local/php/bin/php-config#上面可以添加--enable-ftp,也可以不用添加#编译安…

git常用命令及分支简介

2019独角兽企业重金招聘Python工程师标准>>> 1、git基本命令 1&#xff09;git add 将想要快照的内容写入缓存区 2&#xff09;git status -s "AM" 状态的意思是&#xff0c;这个文件在我们将它添加到缓存之后又有改动 3&#xff09;git commit -m 第一次…

企业私有云部署im,视频服务

1&#xff0c;安全问题 2&#xff0c;员工跨地域 3&#xff0c;内部视频培训 考勤申请&#xff0c;设备借用申请 名片申请 会议室预订 审批 内网&#xff0c;局域网部署 Android源码 https://github.com/starrtc/android-demo ios源码https://github.com/starrtc/ios-demo

php html 伪静态,php 伪静态(url重写)的写法

来看下面这个网页 url&#xff1a;http://www.jbxue.com/test.php/1,100,8630.html其实处理的脚本是test.php 参数为1,100,8630相当于test.php?a1&b1100&c8630 只不过这样的URL太难记。搜索引擎也不喜欢。真静态只是完全生成了HTML。客户端访问的时候直接输出。不用脚…