From f3d84c93499139b5e97abdf19e8f720277ed8818 Mon Sep 17 00:00:00 2001 From: duanshuwen Date: Thu, 25 Sep 2025 19:11:42 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E6=8B=92=E7=BB=9D=E4=B9=9F=E5=AD=98token?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/useGoLogin.js | 13 ++++++++++--- src/manager/AuthManager.js | 10 ++++++++-- src/manager/LoginManager.js | 4 ++-- src/pages/login/index.vue | 7 +------ 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/src/hooks/useGoLogin.js b/src/hooks/useGoLogin.js index f4f9c56..24ae95c 100644 --- a/src/hooks/useGoLogin.js +++ b/src/hooks/useGoLogin.js @@ -10,10 +10,17 @@ export const goBack = () => uni.navigateBack({ delta: 1 }); // 登录逻辑 export const onLogin = async (e) => { - return new Promise(async (resolve) => { - await loginAuth().then(async () => { + console.info("onLogin code: ", e.detail); + + return new Promise(async (resolve, reject) => { + // 判断用户拒绝 + if (e.detail.errno === 104) { + reject(); + return; + } + + await loginAuth(e).then(async () => { const { code } = e.detail; - console.info("onLogin code: ", code); // 绑定手机号 const params = { wechatPhoneCode: code, clientId: clientId }; diff --git a/src/manager/AuthManager.js b/src/manager/AuthManager.js index 019faba..6d3f8cc 100644 --- a/src/manager/AuthManager.js +++ b/src/manager/AuthManager.js @@ -1,4 +1,4 @@ -export const getWeChatAuthCode = () => { +export const getWeChatAuthCode = (e) => { return new Promise((resolve, reject) => { // 条件编译微信小程序、抖音小程序 let provider = ""; @@ -10,10 +10,16 @@ export const getWeChatAuthCode = () => { provider = "toutiao"; // #endif + // 判断用户拒绝授权 + if (e.detail.errMsg === "getPhoneNumber:fail user deny") { + reject(); + return; + } + uni.login({ provider, + onlyAuthorize: true, success: (res) => { - console.log("微信登录成功", res); resolve(res.code); }, fail: (err) => { diff --git a/src/manager/LoginManager.js b/src/manager/LoginManager.js index 5c5afc1..73be598 100644 --- a/src/manager/LoginManager.js +++ b/src/manager/LoginManager.js @@ -8,13 +8,13 @@ import { useAppStore } from "@/store"; import { clientId } from "@/constant/base"; import { NOTICE_EVENT_LOGIN_SUCCESS } from "@/constant/constant"; -const loginAuth = () => { +const loginAuth = (e) => { uni.setStorageSync("token", ""); const appStore = useAppStore(); appStore.setHasToken(false); return new Promise(async (resolve, reject) => { - const openIdCode = await getWeChatAuthCode(); + const openIdCode = await getWeChatAuthCode(e); console.log("获取到的微信授权code:", openIdCode); const params = { openIdCode: [openIdCode], diff --git a/src/pages/login/index.vue b/src/pages/login/index.vue index d5a2438..439b2c0 100644 --- a/src/pages/login/index.vue +++ b/src/pages/login/index.vue @@ -111,12 +111,7 @@ const getPhoneNumber = (e) => { }); goBack(); }) - .catch(() => { - uni.showToast({ - title: "登录失败", - icon: "none", - }); - }); + .catch(() => {}); }; // 处理同意协议点击事件