プロセス各リクエストインターフェースは検証用のトークンを運ぶ キー値: 乱数 + タイムスタンプ + ソルト デモミニプログラム<表示> <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 クロスブラウザ スタイルのバグのデバッグについて
目次条件付きコンパイルページレイアウト要約する条件付きコンパイル条件付きコンパイルでは、特別なコメン...
nginx でファイルサーバーを構築することもありますが、これは一般に公開されていますが、サーバーが...
-9999 ピクセルの画像置換技術は、ここ 10 年近く人気があります。テキスト要素を画像に置き換え...
目次1. 範囲1. グローバルな範囲2. ローカルスコープ2. 変数のスコープ1. グローバル変数2...
Windows 7 で MySQL 5.7.17 をインストールする方法についてのグラフィック チ...
要素の両端を揃える配置レイアウトは、実際の開発のいたるところで見られます。これは、フレックスレイアウ...
この記事では、MySQL クラスター化インデックスのページ分割を例を使って説明します。ご参考までに、...
Docker ネットワークの作成に –subnet を追加した後、docker network ls...
ユーザーを作成します: 'oukele' によって識別されるユーザー 'ou...
この記事では、例を使用して、MySQL ステートメントを使用して、単純な追加、削除、変更、およびクエ...
ブラウザで入力カーソルがずれる問題の詳しい説明<br />仕事で問題に遭遇し、解決策を探...
目次Vue の keep-alive 組み込みコンポーネントの使用でもこのアルゴリズムが使用されます...
1. データベース トランザクションによりデータベースのパフォーマンスが低下します。データの一貫性と...
1. 1列を変更する 学生の更新、都市c s.city_name = c.name を設定します こ...
次のコードは、MySQL 5.7.22 バイナリ パッケージのインストール方法を紹介しています。具体...