プロセス各リクエストインターフェースは検証用のトークンを運ぶ キー値: 乱数 + タイムスタンプ + ソルト デモミニプログラム<表示> <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 クロスブラウザ スタイルのバグのデバッグについて
この記事ではJavaScript検索のデータ表示コードを参考までに共有します。具体的な内容は以下のと...
1. IPアドレスを設定する前に、まずifconfigを使用してネットワークカード情報を表示し、ネッ...
この記事では、Harbor アーキテクチャの構成と、実行時に各コンポーネントを使用する方法について説...
負荷リクエスト成功リクエストに失敗しました cmdをクリックし、ファイルパスでEnterキーを押しま...
インターネット上には多くのインポート方法があり、公式も3つのインポート方法を提供していますが、インポ...
序文公式アカウントのQRコードは長押しで認識できることは皆さんご存じですが、ミニプログラムに対する制...
1. 800*600 未満の場合、Web ページの幅が 778 以内であれば、水平スクロール バーは...
<br />コンテンツ ページの記事の場合、記事が長すぎる場合やカテゴリ (ランキング)...
この記事では、CSS3 の transform を使用して子要素の固定配置を絶対配置に変更する方法を...
目次序文原因分析と解決策スケジュールされたタスクを迅速に実行する要約する序文データベースのスケジュー...
IPマスカレードとポート転送Firewalldは2種類のネットワークアドレス変換をサポートしています...
テーブルページを作成するときに、td に設定された幅が無効になることがあります。td の幅は常に内部...
この記事では、検証コードカウントダウンボタンを実装するためのVueの具体的なコードを例として紹介しま...
この記事では、LinuxにバイナリモードでMySQLをインストールする具体的な手順を参考までに紹介し...
その理由はモッカー プラットフォームを導入したかったので、友人の勧めで既成のプロジェクト api-m...