美文网首页
小程序自动刷新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