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"; import { refreshToken } from "@/hooks/useGoLogin";
onLaunch(() => { onLaunch(() => {
getEvnUrl({ versionValue: "1.0.1" }); getEvnUrl({ versionValue: "1.0.2" });
refreshToken(); refreshToken();
}); });

View File

@@ -62,30 +62,29 @@ export const checkToken = () => {
// 刷新token // 刷新token
export const refreshToken = () => { 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) { if (response.access_token) {
return; setStorageSyncToken(response.access_token);
} // 登录成功后,触发登录成功事件
uni.$emit(NOTICE_EVENT_LOGIN_SUCCESS);
uni.login({ resolve(false)
provider: "weixin", //使用微信登录 } else {
success: async ({ code }) => { resolve(true)
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);
}
},
}); });
}; };

View File

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

View File

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