ホームページ  >  記事  >  PHPフレームワーク  >  thinkphp トークンが失敗した場合の対処方法

thinkphp トークンが失敗した場合の対処方法

藏色散人
藏色散人オリジナル
2022-12-06 09:50:312013ブラウズ

thinkphp トークンの失敗に対する解決策: 1. WeChat アプレットのトークン検証コードを開きます; 2. 「echostr」を出力する前にキャッシュ領域をクリアします、つまり、echo の前に「ob_clean();」コードを配置します。トークンの失敗の問題を解決します。

thinkphp トークンが失敗した場合の対処方法

このチュートリアルの動作環境: Windows 7 システム、ThinkPHP バージョン 5、Dell G3 コンピューター。

thinkphp トークンが失敗した場合はどうすればよいですか?

ThinkPHP WeChat ミニ プログラムのトークン検証エラーの問題を解決する

# 今日、私は WeChat ミニ プログラムを勉強し、ミニ プログラム アカウントを申請しました。手順は次のとおりです: WeChat Mini プログラムの開発 - アカウントを登録します。

開発や設定のプロセス中にサーバー情報を入力してトークンを検証する必要がありますが、検証は常に失敗するため、他の人の対処方法を読んだ後、方法をまとめて共有しました。

解決策: "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;
    }
}

WeChat 公式検証トークンの説明: 開発者は署名をチェックすることでリクエストを検証します (検証方法は以下にあります)。この GET リクエストが WeChat サーバーからのものであることが確認された場合は、echostr パラメーターの内容をそのまま返してください。アクセスが有効になり、開発者になることができます。そうでない場合は、アクセスは失敗します。

暗号化/検証プロセスは次のとおりです:

1. 3 つのパラメーターのトークン、タイムスタンプ、ノンスを辞書順に並べ替えます

2. 3 つのパラメーター文字列を次のように結合します文字列は sha1

で暗号化されます 3. 開発者が取得した暗号化された文字列を署名と比較して、リクエストが WeChat からのものであることを識別できます;

推奨される学習: "thinkPHPビデオチュートリアル >>

以上がthinkphp トークンが失敗した場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。