收藏
回答

H5网页授权问题?

  1. 第一次进入H5 网页 https:// xxx.com/ 未带有code,需要用户授权
  2. 用户授权过后,会跳转到重定向的 url ,会带上code=CODE
  3. 下次再进入已授权的H5网页时,是如何判断已成功授权?

是否再次进入已授权的H5页面时,会自动带上code=CODE?

回答关注问题邀请回答
收藏

3 个回答

  • 我在等太阳
    我在等太阳
    2021-08-25

    本地存储判断

    2021-08-25
    有用 1
    回复 2
    • 张吉林
      张吉林
      2021-08-25
      存储什么值? 存储 CODE 吗?
      2021-08-25
      回复
    • 我在等太阳
      我在等太阳
      2021-08-25回复张吉林
      看你需要什么呀,一般不是用code去换取openid吗,就把openid存储,通过 是否有openid或者openid是否还有效 来判断 是否需要再次授权。
      2021-08-25
      回复
  • 澄c澄悦
    澄c澄悦
    2021-08-25

    是否再次进入已授权的H5页面时,会自动带上code=CODE?不会的,每次都会重新生成code,毕竟code的有效期只有5分钟

    2021-08-25
    有用
    回复
  • 张吉林
    张吉林
    2021-08-25
    const { code } = to.query;
      const restoreUriKey = 'RESTORE_URI';
      if (!code) {
        localStorage.setItem(restoreUriKey, window.location.href);
            // 授权
        window.location.href = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${process.env.VUE_APP_WECHAT_APPID}&redirect_uri=${encodeURIComponent(`${process.env.VUE_APP_REDIRECT_URI}`)}&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect`;
        return next(false);
      }
        // 后端调用微信后台接口 通过code获取token
      createToken({ code })
        .then(data => {
          const { token: newToken = '' } = data;
          if (newToken) {
            store.commit('token/set', newToken);
            window.location.href = localStorage.getItem(restoreUriKey) || '/';
          } else {
            window.location.reload();
          }
        })
        .catch(() => {
          window.location.href = localStorage.getItem(restoreUriKey) || '/';
        });
      return false;
    
    2021-08-25
    有用
    回复 2
    • 张吉林
      张吉林
      2021-08-25
      这段代码是之前前端写的。
      在导航守卫里,他是去判断了这个code 是否存在。如果不存在就去进行授权操作
      2021-08-25
      回复
    • 张吉林
      张吉林
      2021-08-25
      我的问题是,每一次进入这个H5 网页,都应该是没有code 这个参数的。但是为什么只有第一次有授权验证?
      2021-08-25
      回复
登录 后发表内容