首頁 >php框架 >ThinkPHP >thinkphp token失敗怎麼辦

thinkphp token失敗怎麼辦

藏色散人
藏色散人原創
2022-12-06 09:50:312124瀏覽

thinkphp token失敗的解決方法:1、開啟微信小程式token校驗程式碼;2、在輸出「echostr」前,清空快取區,也就是在echo前放置「ob_clean();」程式碼即可解決token失敗問題。

thinkphp token失敗怎麼辦

本教學操作環境:Windows7系統、ThinkPHP5版、Dell G3電腦。

thinkphp token失敗怎麼辦?

解決ThinkPHP微信小程式token校驗失敗

#今天在做微信小程式的學習,申請了一個小程式帳號,申請步驟:微信小程式開發-註冊帳號。

在進行開發配置過程中,需要填寫伺服器信息,校驗token,但是一直是校驗失敗的狀態,看了他人的處理方式,總結出來了辦法,分享出來。

解決方法:在輸出「echostr」前,清空快取區,即在echo 前放置「ob_clean();」程式碼。

官方解釋:ob_clean()  此函數用來丟棄輸出緩衝區中的內容;

校驗程式碼如下:

/**
 * 微信小程序token校验
 * @return bool
 */
public function wxtoken()
{
    $signature = input('get.signature');
    $timestamp = input('get.timestamp');
    $nonce = input('get.nonce');
    $token = '1234567';
    $tmpArr = array($token, $timestamp, $nonce);
    sort($tmpArr, SORT_STRING);
    $tmpStr = implode($tmpArr);
    $tmpStr = sha1($tmpStr);
    if($tmpStr == $signature){
        ob_clean();
        echo input('get.echostr');
    }else{
        return false;
    }
}

微信官方對token校驗的說明為:開發者透過檢驗signature對請求進行校驗(下面有校驗方式)。若確認此GET請求來自微信伺服器,請原樣回傳echostr參數內容,則存取生效,成為開發者成功,否則存取失敗。

加密/校驗流程如下:

 1、將token、timestamp、nonce三個參數進行字典序排序 

2、三個參數字串拼接成一個字串進行sha1加密

 3、開發者獲得加密後的字串可與signature對比,標識該請求來自微信;

推薦學習:《thinkPHP影片教程

以上是thinkphp token失敗怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn