feat: 登录的逻辑调整

This commit is contained in:
2025-12-15 21:04:03 +08:00
parent 364e47b641
commit 9eb1dc6747
4 changed files with 45 additions and 41 deletions

View File

@@ -4,7 +4,7 @@ import { getEvnUrl } from "@/request/api/config";
import { refreshToken } from "@/hooks/useGoLogin";
onLaunch(() => {
getEvnUrl({ versionValue: "1.0.1" });
getEvnUrl({ versionValue: "1.0.2" });
refreshToken();
});

View File

@@ -62,30 +62,29 @@ export const checkToken = () => {
// 刷新token
export const refreshToken = () => {
const token = getStorageSyncToken();
return new Promise((resolve) => {
uni.login({
provider: "weixin", //使用微信登录
success: async ({ code }) => {
console.log("refreshToken", code);
const params = {
openIdCode: [code],
grant_type: "wechat",
scope: "server",
clientId: clientId,
};
console.log("获取到的微信授权params:", JSON.stringify(params));
const response = await wxLogin(params);
if (!token) {
return;
}
uni.login({
provider: "weixin", //使用微信登录
success: async ({ code }) => {
console.log("refreshToken", code);
const params = {
openIdCode: [code],
grant_type: "wechat",
scope: "server",
clientId: clientId,
};
console.log("获取到的微信授权params:", JSON.stringify(params));
const response = await wxLogin(params);
if (response.access_token) {
setStorageSyncToken(response.access_token);
// 登录成功后,触发登录成功事件
uni.$emit(NOTICE_EVENT_LOGIN_SUCCESS);
}
},
if (response.access_token) {
setStorageSyncToken(response.access_token);
// 登录成功后,触发登录成功事件
uni.$emit(NOTICE_EVENT_LOGIN_SUCCESS);
resolve(false)
} else {
resolve(true)
}
},
});
});
};

View File

@@ -38,20 +38,11 @@
<!-- 同意隐私协议并获取手机号按钮 -->
<button
v-if="!isAgree"
class="login-btn"
type="primary"
@click="handleAgreeAndGetPhone"
>
手机号快捷登录
</button>
<button
v-if="isAgree && !appStore.tokenExpired"
class="login-btn"
type="primary"
open-type="getPhoneNumber"
:open-type="needWxLogin ? 'getPhoneNumber' : ''"
@getphonenumber="getPhoneNumber"
@click="handleAgreeAndGetPhone"
>
手机号快捷登录
</button>
@@ -67,19 +58,19 @@
</template>
<script setup>
import { onShow } from "@dcloudio/uni-app";
import { ref, computed } from "vue";
import {
getServiceAgreement,
getPrivacyAgreement,
} from "@/request/api/LoginApi";
import { onLogin, goBack } from "@/hooks/useGoLogin";
import { onLogin, goBack, loginAuth, refreshToken } from "@/hooks/useGoLogin";
import CheckBox from "@/components/CheckBox/index.vue";
import AgreePopup from "./components/AgreePopup/index.vue";
import { zniconsMap } from "@/static/fonts/znicons.js";
import { getCurrentConfig } from "@/constant/base";
import { useAppStore } from "@/store";
const appStore = useAppStore();
const needWxLogin = ref(false);
const isAgree = ref(false);
const visible = ref(false);
const serviceAgreement = ref("");
@@ -90,6 +81,11 @@ const logo = computed(() => getCurrentConfig().logo);
// 同意隐私协议并获取手机号
const handleAgreeAndGetPhone = () => {
// 如果需要微信登录,直接返回
if (needWxLogin.value) {
return
}
if (!isAgree.value) {
uni.showToast({
title: "请先同意服务协议和隐私协议",
@@ -97,6 +93,8 @@ const handleAgreeAndGetPhone = () => {
});
return;
}
refreshToken().then(() => goBack());
};
const getPhoneNumber = (e) => {
@@ -141,6 +139,13 @@ const getPrivacyAgreementData = async () => {
};
getPrivacyAgreementData();
// 页面显示时刷新token
onShow(async () => {
const res = await refreshToken();
needWxLogin.value = res;
});
</script>
<style lang="scss" scoped>

View File

@@ -60,9 +60,9 @@ function request(url, args = {}, method = "POST", customConfig = {}) {
resolve(res.data);
if (res.statusCode && res.statusCode === 424) {
console.log("424错误重新登录");
removeStorageSyncToken();
// removeStorageSyncToken();
uni.$emit(NOTICE_EVENT_LOGOUT);
goLogin();
// goLogin();
}
},
fail: (err) => {