import { oauthToken, checkUserPhone } from "@/request/api/LoginApi"; import { authLogin, refreshAuthLogin, checkRefreshToken } from "@/manager/LoginManager"; import { clientId } from "@/constant/base"; import { getAccessToken, removeAccessToken, setAccessToken } from "../constant/token"; import { NOTICE_EVENT_LOGIN_SUCCESS } from "@/constant/constant"; // 跳转登录 export const goLogin = () => uni.navigateTo({ url: "/pages/login/index" }); // 登录成功后,返回上一页 export const goBack = () => uni.navigateBack({ delta: 1 }); // 检测token export const checkToken = () => { const token = getAccessToken(); return new Promise((resolve) => { if (!token) { goLogin(); return; } resolve(); }); }; // 登录逻辑 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 authLogin(e).then(async () => { console.log("authLogin resolve success"); // 检查手机号是否绑定 const checkRes = await checkUserPhone(); if (checkRes.data) { resolve(); return; } if (e === undefined) { resolve(); return; } const { code } = e.detail; // 绑定手机号 const params = { wechatPhoneCode: code, clientId: clientId }; const res = await bindUserPhone(params); if (res.data) { // 登录成功后,触发登录成功事件 uni.$emit(NOTICE_EVENT_LOGIN_SUCCESS); resolve(); } else { console.log("绑定手机号失败"); removeAccessToken(); reject(); } }); }); }; /// 检查手机号登录 export const onCheckPhoneLogin = async () => { return new Promise(async (resolve) => { await refreshAuthLogin().then(async () => { // 刷新成功后,检查手机号是否绑定 const access_token = getAccessToken(); const checkRes = await checkUserPhone({ token: access_token, }); if (checkRes.data) { // 登录成功后,触发登录成功事件 uni.$emit(NOTICE_EVENT_LOGIN_SUCCESS); resolve(false); } else { resolve(true); } }); }); }; /// apple登录 export const onAppleLogin = async (e) => { return new Promise(async (resolve) => { await refreshAuthLogin() .then(() => { // 登录成功后,触发登录成功事件 uni.$emit(NOTICE_EVENT_LOGIN_SUCCESS); resolve(true); }) .catch(() => { resolve(false); }); }); } /// 刷新 token export const refreshToken = async () => { await checkRefreshToken() };