60 lines
1.4 KiB
JavaScript
60 lines
1.4 KiB
JavaScript
import { loginAuth, bindPhone, checkPhone } from "@/manager/LoginManager";
|
||
import { clientId } from "@/constant/base";
|
||
import { useAppStore } from "@/store";
|
||
|
||
// 跳转登录
|
||
export const goLogin = () => uni.navigateTo({ url: "/pages/login/index" });
|
||
|
||
// 登录成功后,返回上一页
|
||
export const goBack = () => uni.navigateBack({ delta: 1 });
|
||
|
||
// 登录逻辑
|
||
export const onLogin = async (e) => {
|
||
console.info("onLogin code: ", e);
|
||
|
||
return new Promise(async (resolve, reject) => {
|
||
// 判断用户拒绝
|
||
if (e !== undefined && e && e.detail && e.detail.errno === 104) {
|
||
reject();
|
||
return;
|
||
}
|
||
|
||
await loginAuth(e).then(async () => {
|
||
// 检查手机号是否绑定
|
||
const checkRes = await checkPhone();
|
||
if (checkRes.data) {
|
||
resolve();
|
||
return;
|
||
}
|
||
|
||
if (e === undefined) {
|
||
resolve();
|
||
return;
|
||
}
|
||
|
||
const { code } = e.detail;
|
||
|
||
// 绑定手机号
|
||
const params = { wechatPhoneCode: code, clientId: clientId };
|
||
const res = await bindPhone(params);
|
||
if (res.data) {
|
||
resolve();
|
||
}
|
||
});
|
||
});
|
||
};
|
||
|
||
// 检测token
|
||
export const checkToken = () => {
|
||
return new Promise((resolve) => {
|
||
const appStore = useAppStore();
|
||
console.log("appStore.hasToken: ", appStore.hasToken);
|
||
if (!appStore.hasToken) {
|
||
console.log("没有token,跳转到登录页");
|
||
goLogin();
|
||
return;
|
||
}
|
||
resolve();
|
||
});
|
||
};
|