问题描述:当时获取微信的code的时候,直接再created里面调用的,然后用sesssionStorage储存的code,这样每次进入页面,页面都会重新重定向获取code,这样页面重定向的话,获取code的哪个页面就是重定向的页面,刚开始进来的哪个就没有code,用手机自带的返回键回退到这个页面就没有code了,解决办法就是使用cokie存储,使用它是因为他又过期时间,这样可以考虑code的时效性
代码
获取code的方法此方法再mounted()生命周期中调用
getCode(){
const appid = “”;
const pageUrl = “”;

    // if(localStorage.getItem("code")){
      if(this.getCokie('code')){
      // 如果本地已经存有code 说明是回退到了获取code的起始页面
        // this.code = localStorage.getItem("code");
        this.code = this.getCokie('code')
        // alert('我是A页面从缓存取的code: ' + this.code)
    } else if(this.getUrlParam("code")){
      // 如果是链接上有code,说明是获取code的当前页面
          this.code = this.getUrlParam("code");
          // localStorage.setItem("code", this.code);
          
          this.setCokie('code',this.code,1)
          
          // alert('我是获取code的页面从url取的code: ' + this.code)
    } else {
      // 没有code 要去微信获取
      let timeStamp = new Date().getTime();
      let url =
        "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" +
        appid +
        "&response_type=code&scope=snsapi_userinfo&redirect_uri=" +
        encodeURIComponent(pageUrl) +
        "&state=" + timeStamp +"&connect_redirect=1#wechat_redirect";
        // alert('我要去取code了: ' + url)
      window.location.replace(url);
    }
},
Logo

前往低代码交流专区

更多推荐