美文网首页
小程序自动刷新token

小程序自动刷新token

作者: 花影_62b4 | 来源:发表于2023-10-30 15:26 被阅读0次

//bg_task.js


/**
 * 刷新token
 */
var RefreshTokenUtil = {
    // 单次更新token
    doRefreshToken: function(callback = ()=>{}) {
        ApiService.doPost({
            url: Api.URL.URL_RefreshToken,
            data: {
                refreshToken: Common.getStorage(SysConst.REFRESH_TOKEN),
                appId: encrypt.encryptLong(SysConst.APP_ID)
            },
            showLoading: false,
            success: (res) => {
                Common.setStorage(SysConst.REFRESH_TOKEN, res.data.refresh_token);
                Common.setStorage(SysConst.TOKEN_PARM_NAME, res.data.access_token);
                uni.$emit('tokenUpdate', { token: res.data.access_token });
                callback();
            },
            fail: (err) => {
                
            }
        });
    },
    // 定时任务,刷新token
    refreshToken :function() {
        setInterval(this.doRefreshToken, SysConst.REFRESH_TOKEN_EXPIRE);
    }
};

export default {
    RefreshTokenUtil: RefreshTokenUtil,
}

使用方法

uni_login()  //封装的uni.login()
            .then(res => {
                LoginUtil.login(res.code, 'miniApp') //wxLogin后台拿code换wx数据去
                    .then(() => {                       
                        // 启动定时任务,刷新token
                        BgTask.RefreshTokenUtil.refreshToken();
                        //其他逻辑
                    })
                    .catch(err => {
                        console.error('/pages/entrance/event wxlogin......',     
                                              JSON.stringify(err));
                    });
            })

相关文章

网友评论

      本文标题:小程序自动刷新token

      本文链接:https://www.haomeiwen.com/subject/evvbidtx.html