微信小程序登录:手动登录完成

This commit is contained in:
YunaiV
2023-12-23 17:53:07 +08:00
parent 1c218cd730
commit b23fca683b
9 changed files with 108 additions and 79 deletions
@@ -1,6 +1,5 @@
import third from '@/sheep/api/third';
import $wxsdk from '@/sheep/libs/sdk-h5-weixin';
import $store from '@/sheep/store';
import { getRootUrl } from '@/sheep/helper';
import AuthUtil from '@/sheep/api/member/auth';
@@ -8,32 +7,24 @@ const socialType = 31; // 社交类型 - 微信公众号
// 加载微信公众号JSSDK
async function load() {
// TODO 芋艿:自动登录的逻辑
if ($store('app').platform.auto_login
&& $store('user').isLogin
&& location.href.search('pages/index/login') === -1) {
// 发起自动登陆
login();
}
$wxsdk.init();
}
// 微信公众号登陆
async function login(code = '', state = '') {
// 获取登陆地址
// 情况一:没有 code 时,去获取 code
if (!code) {
const loginUrl = await getLoginUrl();
if (loginUrl) {
uni.setStorageSync('returnUrl', location.href);
window.location = loginUrl;
}
// 情况二:有 code 时,使用 code 去自动登录
} else {
// 解密 code 发起登陆
const loginResult = await loginByCode(code, state);
if (loginResult.code === 0) {
if (loginResult.data.openid) {
setOpenid(loginResult.data.openid);
}
setOpenid(loginResult.data.openid);
return loginResult;
}
}