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.pswp.cn/news/277439.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277439.shtml
英文地址,請注明出處:http://en.pswp.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。客戶端訪問的時候直接輸出。不用腳…