js登录失效,怎么登录成功之后重新调去之前的接口

问题描述

现在项目是微信H5,使用静默授权登录,一开始使用code登录,之后都使用openId登录,没有登录页面,项目中有的数据接口是需要登录验证的,现在做的是: 请求数据接口,成功了继续执行,如果返回登录过期,就重新执行登录逻辑,使用openId登录,但是想登录成功之后再调一下数据接口,不知道这样怎么处理

问题出现的环境背景及自己尝试过哪些方法

现在是登录失效之后再次调取登录接口,登录成功之后刷新页面

想做到不刷新页面,登录成功之后继续请求一开始的接口,逻辑该怎么写啊,难道一直在回调里判断吗

阅读 2.8k
1 个回答

// 1. 目标函数
function getData(){/*...*/}
// 2. openId 登录函数
function signByOpenid(){/*...*/}
// 3. 登录帮助函数,入参 actionFun,登录成功之后调用的函数
function signHelper(actionFun){/*...*/}

// 业务流程,用户行为
function userAction(){
    getData()
    .then(()=>{ /* 成功处理 */ })
    .catch((e)=>{
      if(e.code == '登录失效'){
        signHelper(userAction)
      }
    })
}

不知道是不是你想要的东西