最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

小程序?qū)崿F(xiàn)Token生成與驗(yàn)證

 更新時(shí)間:2021年12月10日 09:53:59   作者:紅塵煉煉心  
本文主要介紹了小程序?qū)崿F(xiàn)Token生成與驗(yàn)證,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

流程

每次請求接口攜帶token,進(jìn)行驗(yàn)證
1.驗(yàn)證成功則返回接口數(shù)據(jù)
2.驗(yàn)證失敗(token過期),小程序重新請求生成新的token,然后請求之前的接口

key值: 隨機(jī)數(shù)+時(shí)間戳+鹽
value值: id+session_key+openid

演示

小程序端

<view>
  <button bindtap="loadToeknData">攜帶token請求數(shù)據(jù)</button>
</view>
Page({
  data: {
  },
 
  onLoad:function(){
    // this._loadData();
  },
 
  //生成token
  setToken:function(callback){
    // wx.setStorageSync('token', "sfspx64w8x47w14x3zX4x4wf4")
    var that = this;
    wx.request({
      url: 'http://2021xcx-api.com/api/gettoken',
      method: 'POST',
      success: function(res){
        console.log(res.data);
        var data = res.data;
        if(data.code==1){
          //更新新獲取的token值
          wx.setStorageSync('token', data.token);
          // 執(zhí)行回調(diào)函數(shù)
          callback&&callback()
        }else{
          that.setToken();
        }
      }
    })
  },
 loadToeknData:function(){
   var that = this;
    wx.request({
      url: 'http://2021xcx-api.com/api/orders',
      method: 'POST',
      header: {
        'content-type': 'application/json',
        'token': wx.getStorageSync('token')
      },
      success: function(res){
        var data = res.data;
        console.log(data)
        if(data.code==903){
          // token過期,重新請求設(shè)置
          // 攜帶回調(diào)函數(shù),token重新獲取后繼續(xù)執(zhí)行此方法。
          that.setToken(that.loadToeknData)
        }
      }
    })
  },
})

??

后端接口

路由配置

<?php
Route::post("api/orders", "api/index/getOrders");
// Token
Route::post("api/gettoken", "api/token/createToken");

Index.php

<?php
namespace app\api\controller;
use app\api\controller\Token;
use think\Cache;
 
class Index extends Token
{
    public function getOrders(Token $token){
        $token->verifyToken();
 
        $data['orders'] = [
            'id' => 1,
            'title' => 'apple',
            'time' => time()
        ];
        echo json_encode($data);
 
    }
}

Token.php

<?php
namespace app\api\controller;
use think\Controller;
 
class Token extends Controller
{
    protected $returnParam = [
        'code' => 1,
        'msg' => '請求失敗'
    ];
 
    /**
     * [verifyToken 驗(yàn)證Token是否攜帶并存在]
     * @return [type] [description]
     */
    public function verifyToken(){
        $token = request()->header()['token'];
        $isSetToken = cache($token);
        // dump($isSetToken);die;
        if(!$isSetToken){
            $this->returnParam['code'] = 903;
            $this->returnParam['msg'] = "Token驗(yàn)證失敗";
            echo json_encode( $this->returnParam );die;
        }
    }
    
    /**
     * [createToken Token生成]
     * tip:token中記錄用戶ID/session_kye/openid
     * @return [type] [description]
     */
    public function createToken()
    {
        $randStr = rand(1,9999);
        $time = time();
        $sale = "xixi2021";
 
        // * 此處模擬--未請求微信接口進(jìn)行sessionkey及openid的獲取
        $tokenValue = [
            'uid' => 1,
            'session_key' => '84848aasa',
            'openid' => '20oxl65wc4d4s5x7hwc',
            'code' => 'sssaaeee'
        ];
        $tokenKey = md5($randStr.$time.$sale);
        //緩存存儲token數(shù)據(jù)
        cache($tokenKey, json_encode($tokenValue), 1);
 
        $returnParam = [
            'code' => 1,
            'token' => $tokenKey
        ];
        echo json_encode($returnParam);
    }
   
}

到此這篇關(guān)于小程序?qū)崿F(xiàn)Token生成與驗(yàn)證的文章就介紹到這了,更多相關(guān)小程序 Token生成與驗(yàn)證內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 微信小程序云開發(fā)使用方法新手初體驗(yàn)

    微信小程序云開發(fā)使用方法新手初體驗(yàn)

    微信小程序云開發(fā)使用方法新手初體驗(yàn),開發(fā)者可以使用云開發(fā)開發(fā)微信小程序、小游戲,無需搭建服務(wù)器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • RequireJS多頁面應(yīng)用實(shí)例分析

    RequireJS多頁面應(yīng)用實(shí)例分析

    這篇文章主要介紹了RequireJS多頁面應(yīng)用實(shí)例分析的相關(guān)資料,非常不錯,具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • JavaScript代碼性能優(yōu)化總結(jié)篇

    JavaScript代碼性能優(yōu)化總結(jié)篇

    本文給大家總結(jié)了有關(guān)js代碼性能優(yōu)化的相關(guān)知識,非常不錯,感興趣的朋友一起學(xué)習(xí)吧
    2016-05-05
  • Java通過WebSocket實(shí)現(xiàn)異步導(dǎo)出解決思路

    Java通過WebSocket實(shí)現(xiàn)異步導(dǎo)出解決思路

    這篇文章主要介紹了通過WebSocket實(shí)現(xiàn)異步導(dǎo)出,本篇文章記錄大批量數(shù)據(jù)導(dǎo)出時(shí)間過長,導(dǎo)致接口請求超時(shí)問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-01-01
  • js時(shí)間戳與日期格式之間相互轉(zhuǎn)換

    js時(shí)間戳與日期格式之間相互轉(zhuǎn)換

    這篇文章主要為大家詳細(xì)介紹了js時(shí)間戳與日期格式之間相互轉(zhuǎn)換,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • JavaScript的setter與getter方法

    JavaScript的setter與getter方法

    這篇文章主要為大家詳細(xì)介紹了JavaScript的setter與getter方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • layui table 列寬百分比顯示的實(shí)現(xiàn)方法

    layui table 列寬百分比顯示的實(shí)現(xiàn)方法

    今天小編就為大家分享一篇layui table 列寬百分比顯示的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • Bootstrap響應(yīng)式側(cè)邊欄改進(jìn)版

    Bootstrap響應(yīng)式側(cè)邊欄改進(jìn)版

    這篇文章主要為大家詳細(xì)介紹了Bootstrap響應(yīng)式側(cè)邊欄改進(jìn)版,結(jié)合導(dǎo)航條和下拉菜單進(jìn)行改進(jìn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • 使用tree?shaking?移除無用代碼

    使用tree?shaking?移除無用代碼

    這篇文章主要為大家介紹了使用tree?shaking?移除無用代碼示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Javascript中的Prototype到底是什么

    Javascript中的Prototype到底是什么

    Javascript也是面向?qū)ο蟮恼Z言,但它是一種基于原型Prototype的語言,而不是基于類的語言。接下來通過本文給大家介紹Javascript中的Prototype到底是啥的相關(guān)知識,感興趣的朋友參考下
    2016-02-02

最新評論

于都县| 紫阳县| 昌乐县| 长兴县| 宁强县| 虎林市| 麟游县| 古田县| 孝义市| 公主岭市| 玛多县| 沅江市| 潼关县| 肥东县| 正安县| 蓬安县| 江门市| 张家界市| 清丰县| 宝兴县| 信丰县| 龙口市| 梅州市| 临武县| 磐石市| 宿迁市| 沧源| 盐城市| 德清县| 长子县| 新平| 云梦县| 米脂县| 邳州市| 布尔津县| 札达县| 乌海市| 鄂州市| 武平县| 孟村| 凤凰县|