微信公众号H5 重定向登录的标准逻辑

//用户重定向登录
const getUserInfo = async (option) => {
  // Taro.showLoading({
  //   title: "加载中...",
  //   mask: true,
  // });
  loadingstyle.value = true

  let code = option.code;
  // console.log(Taro.getStorageSync("userInfo"));

  let userInfo = Taro.getStorageSync("userInfo")
    ? Taro.getStorageSync("userInfo")
    : null;

  if (userInfo) {
    userInfo = await loginApi
      .userInfo({ userId: userInfo.id })
      .then((res: any) => res.data);
    console.log(userInfo, "[][][]");
    // userInfo = userInfo = Taro.getStorageSync("userInfo")
    //   ? Taro.getStorageSync("userInfo")
    //   : null
    // return;
    if (!userInfo) {
      Taro.removeStorageSync("userInfo");
    }
  } else if (code) {
   


  }
  // 如果 userInfo 为空 代表 本地 没有 缓存数据 且 code 不存在 获取失效  重新获取code
  if (!userInfo) {
    getCode();
    return
  } else {
}
    
};

const getCode = () => {
  // 网络重定向地址
  let local = `xxx/cdx2.html`; // 获取页面url
  // let local = `xxx/cdx2.html/cdx2.html`; // 获取页面url

  // // // // 判断 如果是本地 开发 设置本地重定向地址

  if (window.location.origin.indexOf("192.168.1.26") !== -1) {
   
    local = `xxx/cdx1.html`; // 获取页面url

  }
  //  地址转码
  local = encodeURIComponent(local);

  //  获取 code 地址
  let url = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appId.value}&redirect_uri=${local}&response_type=code&connect_redirect=1&scope=snsapi_userinfo&state=STATE#wechat_redirect`;

  window.location.href = url;
  // Taro.hideLoading();
  loadingstyle.value = false
};




微信公众号 重定向登录的逻辑 

1. code 的获取 在 onmounted 中的pararm 参数中可以获取code 

2. 在onMounted 中 调用获取getUserInfo 

3.微信公众号H5 登录 主要是靠的 微信缓存 的登录 缓存有用户信息 直接根据用户id 获取当前的用户信息

4.如果没有 重定向微信地址 获取openid 获取用户信息

你可能感兴趣的:(微信,H5)