小程序wxRequest封装一个无痛刷新token方法?

小程序 文章 2022-03-31 09:20 967 0 全屏看文

AI助手支持GPT4.0

小程序wxRequest封装一个无痛刷新token方法?The applet wxRequest encapsulates a painless token refresh method?

小程序wxRequest封装一个无痛刷新token方法?

当token过期后就去获取新的token,但要阻止同一个页面多个异步请求,在请求到新的token前,把请求任务放在队列,新token生成后再执行任务队列的请求,大概咋写啊,我怎么写都不对,就是怎么回调任务队列的请求

When the token expires, get a new token, but block multiple asynchronous requests on the same page. Before requesting a new token, put the request task in the queue, and execute the request of the task queue after the new token is generated. I don't know how to write it, that is, how to call back the request of the task queue

回答:

那一抹笑😃 穿透阳光:

wx.pro.request = (options) => {

 return new Promise((resolve, reject) => {

let req = {

     url: wx.getStorageSync("serverurl"+ options.url,

        method: options.method || 'GET',

       header: {Authorization: 'Bearer ' + wx.getStorageSync("token")},

       success: (res) => {

         if (res.statusCode == 401 && requestNumber <= 3{

             login().then((log) => {

                requestNumber++;

                    if (log.results{wx.setStorageSync("token", log.results.token); }

                    resolve(wx.pro.request(options))

              })

         } else {

             resolve(getData(res))

          },

     fail: (err) => {

        reject(getData(err));

      }

  };

 if (options.data{

    req.data = options.data;

    req.header['content-type'= 'application/json';

    }

   wx.request(req);

 });

};

那一抹笑😃 穿透阳光:let requestNumber = 0; //登录接口请求次数,防止接口报错,无限请求

function login() {
    return wx.pro.login().then((res) => {
        return wx.pro.request({
            method: 'GET',
            url: 'api/miniprogram/auth',
            data: {
                code: res.code
            },
            header: {
                'content-type': 'application/json';
            },
        })
    })
}
拾忆:

token刷新要放在服务端处理不是放在小程序端处理。

服务端定期刷新token放在数据库或者redis供小程序使用。

-EOF-

AI助手支持GPT4.0


国内超级便宜服务器

摸鱼人热门新闻聚合

钻级赞助商 我要加入

开发者在线工具

第三方支付技术请加QQ群

相关文章
小程序自定义导航栏,可以实现导航文字不固定在顶部,随着页面下滑消失吗?
企业微信客户,客户扫码添加成功后,是否有回调接口?
微信有什么更新么?canvas和view 为什么突然不能同层渲染了. 现在ios一部手机不能同层渲染
几个意思,在新疆视频号还不能直播了?
个人主体小程序可以被搜索到吗,使用人数有限制吗?
随便看看
教育科技公司申请微信支付被拒绝? 3897
微信公众号免300认证教程 4999
小程序已经上线,作为管理员无法在小程序数据助手查看数据? 4118
小程序广告组件通过审核,但是小程序内没有显示广告? 4295
企业微信通讯录账号被管理员误/恶意删除,怎么办? 8082
问题? 7407
如何快速搭建抽奖助手小程序(无需代码知识) 5088
许涛 大哥在吗, 要解冻小程序的时候提示信息主体不一致, 能帮忙看下吗? 6042
小程序搜一搜全称搜索不显示 麻烦解决一下!谢谢 5654
我的小程序广告收款主体是个体工商户,每个月邮寄两次发票很是麻烦,我年底的时候打包邮寄一次可以么? 5245