プロセス各リクエストインターフェースは検証用のトークンを運ぶ キー値: 乱数 + タイムスタンプ + ソルト デモミニプログラム<表示> <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 クロスブラウザ スタイルのバグのデバッグについて
CSS3以前は、グラデーション画像は背景画像としてのみ使用できました。 CSS3 のグラデーション構...
Code Cloudで新しいプロジェクトtest1を作成します。 公開鍵を取得するには次のコマンドを...
ダウンロードとインストール環境変数の設定インストール環境変数の設定確認基本的な描画の紹介グラフディグ...
購入証明書Alibaba CloudのCloud Shield証明書サービスから購入できます。証明書...
複雑な表を作成するには HTML を使用します。複雑なテーブルでは通常、td の rowspan 属...
この記事では、主に同じ親タグの左側と右側にある 2 つのボタンの CSS レイアウト方法を紹介し、皆...
通常、デッドロックが発生すると、重みが最も小さい接続が強制終了され、ロールバックされます。ただし、最...
1. プロジェクトの実行時に報告されるエラー情報は次のとおりです。 ファイル "/home...
コンピュータを使用すると、システム内に大量のゴミが生成されます。最も一般的なケースは、同じファイルが...
概要: MYSQLの問題解決記録:どのようなインストール方法 (rpm、gz、gz.xz) を使用す...
1. ボックスを中央に配置するいくつかの方法を記録します。 1.0、マージン幅固定、高さ中央配置。 ...
この物語は、今日の予期せぬ発見から始まります。同社には複数のウェブサイトがある。友達リンクにはお互い...
目次運河マクスウェルデータバスAlibaba Cloud のデータ転送サービス (DTS)運河ポジシ...
1 実施原則これは、DOM 要素の dragstart/ondragover/ondrop イベント...
Mysql の追加、削除、変更、クエリステートメントのシンプルな実装追加されたレコード: テーブル名...