//用户重定向登录
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 获取用户信息