プロセス各リクエストインターフェースは検証用のトークンを運ぶ キー値: 乱数 + タイムスタンプ + ソルト デモミニプログラム<表示> <button bindtap="loadTokenData">トークン要求データを送信する</button> </ビュー> ページ({ データ: { }, onLoad:関数(){ // this._loadData(); }, //トークンを生成する setToken:function(コールバック){ // wx.setStorageSync('token', "sfspx64w8x47w14x3zX4x4wf4") var that = this; wx.リクエスト({ URL: 'http://2021xcx-api.com/api/gettoken', メソッド: 'POST'、 成功: function(res){ コンソールにログ出力します。 var データ = res.data; if(データコード==1){ //新しく取得したトークン値を更新します wx.setStorageSync('token', data.token); // コールバック関数 callback&&callback() を実行する }それ以外{ .setToken(); } } }) }, ロードトークンデータ:関数(){ var that = this; wx.リクエスト({ URL: 'http://2021xcx-api.com/api/orders', メソッド: 'POST'、 ヘッダー: { 'コンテンツタイプ': 'application/json', 'トークン': wx.getStorageSync('トークン') }, 成功: function(res){ var データ = res.data; コンソール.log(データ) if(データコード==903){ // トークンの有効期限が切れたので、再度設定するよう要求します // コールバック関数を実行し、トークンが再取得された後もこのメソッドの実行を継続します。 that.setToken(that.loadTokenData) } } }) }, }) バックエンドインターフェースルーティング構成 <?php Route::post("api/orders", "api/index/getOrders"); //トークン Route::post("api/gettoken", "api/token/createToken"); インデックス.php <?php 名前空間 app\api\controller; app\api\controller\Token を使用します。 think\Cache を使用します。 IndexクラスはTokenを拡張します { パブリック関数 getOrders(トークン $token){ $token->verifyToken(); $data['注文'] = [ 'id' => 1, 'タイトル' => 'リンゴ', '時間' => 時間() ]; json_encode($data) をエコーします。 } } トークン.php <?php 名前空間 app\api\controller; think\Controller を使用します。 クラス Token は Controller を拡張します { 保護された$returnParam = [ 'コード' => 1, 'msg' => 'リクエストが失敗しました' ]; /** * [verifyTokenはトークンが運ばれ、存在するかどうかを検証します] * @return [型] [説明] */ パブリック関数verifyToken(){ $token = request()->header()['token']; $isSetToken = キャッシュ($token); // dump($isSetToken); die; if(!$isSetToken){ $this->returnParam['code'] = 903; $this->returnParam['msg'] = "トークンの検証に失敗しました"; echo json_encode( $this->returnParam );die; } } /** * [createToken トークン生成] * ヒント: トークンにユーザーID/session_kye/openidを記録する * @return [型] [説明] */ パブリック関数 createToken() { 1,9999 は 1 です。 時間 セール価格 // * ここでシミュレートします--WeChatインターフェースはセッションキーとopenidを取得するために要求されません $tokenValue = [ 'uid' => 1, 'セッションキー' => '84848aasa', 'オープンID' => '20oxl65wc4d4s5x7hwc', 'コード' => 'sssaaeee' ]; $tokenKey = md5($randStr.$time.$sale); //トークンデータをキャッシュします。cache($tokenKey, json_encode($tokenValue), 1); $戻り値 = [ 'コード' => 1, 'トークン' => $トークンキー ]; json_encode をエコーします($returnParam); } } ミニプログラムトークン生成と検証に関するこの記事はこれで終わりです。ミニプログラムトークン生成と検証に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: CSS クロスブラウザ スタイルのバグのデバッグについて
多くの場合、画像を表示する<a>タグのスタイルに遭遇しますが、タグ内にテキストがあり、そ...
2 端揃えを実現する div+css レイアウトは、Web ページの組版でよく使用されます。この記事...
システム提供のMySQLをアンインストールする1. MySQLがシステムにインストールされているかど...
目次序文RMの後には希望はあるのでしょうか?最前線を使ってファイルを取得するextundeleteを...
NetEase Blog でコードを使用する方法: まずブログにログインし、ブログのホームページの左...
取引の実施REDO ログはトランザクションの永続性を保証し、UNDO ログはトランザクションのロール...
この章では、dockerの下にあるSpring BootプロジェクトでRedisを操作し始めます。準...
1. 要件の説明Divタグの右上隅に削除アイコンを表示します2. 実装html、CSS 3. 参照コ...
目次可変タイプとストレージスペーススタックメモリとヒープメモリ基本的なデータ型参照タイプグラフィック...
TensorFlow をディープラーニングに使うとビデオメモリ不足がよく起こるので、GPU 使用状況...
MySQL データベースは、特に JAVA プログラマーの間で広く使用されています。クラウド データ...
以前にインストールしたmariadbを削除する1. rpm -qa | grep mariadb を...
HTML では、色は 2 つの方法で表現されます。 1 つは、青の場合は blue のように色の名前...
Vue エコシステムには Vite と呼ばれる新しいビルド ツールがあり、Vue CLI よりも 1...
なお、この記事では、単に 20.04 ソースに変更する方法を説明するのではなく、20.04 に基づい...