From 1cc9bfb8abf9cfdf09f29b3438f232ccd182451f Mon Sep 17 00:00:00 2001 From: mayiming <1627832236@qq.com> Date: Mon, 11 Aug 2025 00:40:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=94=A8=E6=88=B7=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E5=92=8C=E5=85=A8=E5=B1=80token?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- miniprogram/app.ts | 36 +++++--- miniprogram/pages/index/index.wxml | 2 +- miniprogram/pages/personpage/personpage.json | 0 miniprogram/pages/personpage/personpage.ts | 0 miniprogram/pages/personpage/personpage.wxml | 0 miniprogram/pages/personpage/personpage.wxss | 0 miniprogram/pages/user-login/user-login.ts | 86 ++++++++++++++++++-- miniprogram/pages/user-login/user-login.wxml | 2 +- miniprogram/pages/user/user.json | 3 +- miniprogram/pages/user/user.ts | 27 +++++- miniprogram/pages/user/user.wxml | 3 +- typings/index.d.ts | 3 +- typings/types/wx/lib.wx.api.d.ts | 31 +++++-- typings/types/wx/lib.wx.api.ts | 0 typings/types/wx/lib.wx.app.d.ts | 4 + 15 files changed, 167 insertions(+), 30 deletions(-) create mode 100644 miniprogram/pages/personpage/personpage.json create mode 100644 miniprogram/pages/personpage/personpage.ts create mode 100644 miniprogram/pages/personpage/personpage.wxml create mode 100644 miniprogram/pages/personpage/personpage.wxss create mode 100644 typings/types/wx/lib.wx.api.ts diff --git a/miniprogram/app.ts b/miniprogram/app.ts index 1e69138..ced9e2f 100644 --- a/miniprogram/app.ts +++ b/miniprogram/app.ts @@ -1,19 +1,31 @@ // app.ts App({ globalData: { + token: "", + userInfo: null }, onLaunch() { - // 展示本地存储能力 - const logs = wx.getStorageSync('logs') || [] - logs.unshift(Date.now()) - wx.setStorageSync('logs', logs) - - // 登录 - wx.login({ - success: res => { - console.log(res.code) - // 发送 res.code 到后台换取 openId, sessionKey, unionId - }, - }) + const token = wx.getStorageSync("token"); + if (token) { + this.globalData.token = token; + } }, + setToken(token: string) { + this.globalData.token = token; + wx.setStorageSync("token", token); // 同步到缓存,持久化存储 + }, + // 提供清除 token 的方法(退出登录时使用) + clearToken() { + this.globalData.token = ""; + wx.removeStorageSync("token"); + }, + setUserInfo(userInfo: WechatMiniprogram.CustomUserInfo){ + this.globalData.userInfo = userInfo; + // 可选:持久化存储到缓存(根据需求决定是否需要) + wx.setStorageSync("userInfo", userInfo); + }, + clearUserInfo(){ + this.globalData.userInfo = null; + wx.removeStorageSync("userInfo") + } }) \ No newline at end of file diff --git a/miniprogram/pages/index/index.wxml b/miniprogram/pages/index/index.wxml index 6c104a4..5ef006b 100644 --- a/miniprogram/pages/index/index.wxml +++ b/miniprogram/pages/index/index.wxml @@ -2,7 +2,7 @@ - + ({ url: `${envConfig.apiBaseUrl}/user/login`, method: "POST", data: { @@ -45,11 +46,60 @@ Component({ theme: 'success', direction: 'column', }); - // 登录成功,存储用户信息并跳转首页 - //wx.setStorageSync("userInfo", res.data.userInfo); - //wx.navigateTo({ url: "/pages/index/index" }); - } else { - wx.showToast({ title: "登录失败", icon: "none" }); + const app = getApp() + app.setToken(res.data.token) + app.setUserInfo({ + uid: res.data.userinfo.uid, + username: res.data.userinfo.username, + telephone: res.data.userinfo.telephone, + gender: 2, + }) + + setTimeout(() => { + // 3.1 刷新user组件 + const pages = getCurrentPages(); + let homePage = null; + pages.forEach(page => { + if (page.route === 'pages/index/index') { + homePage = page; + } + }); + + if (homePage) { + const userComponent = homePage.selectComponent('#userComp'); + if (userComponent) { + userComponent.refreshUserStatus(); + } + } else { + // 首页不在栈中,跳转首页 + wx.redirectTo({ + url: '/pages/home/home' + }); + // 注意:如果跳转后不需要执行下面的返回逻辑,可在此处加 return + // return; + } + + // 3.2 页面跳转/返回 + if (pages.length > 1) { + // 返回上一页 + wx.navigateBack({ + delta: 1 + }); + } else { + // 跳转到首页(tabBar页面用switchTab) + wx.switchTab({ + url: '/pages/index/index' + }); + } + + }, 1500); // 延迟时间:1500毫秒(1.5秒),可根据需要调整 + }else{ + Toast({ + selector: '#t-toast', + message: '登录失败', + theme: 'error', + direction: 'column', + }); } }, fail() { @@ -61,6 +111,30 @@ Component({ wx.showToast({ title: "请允许授权以完成登录", icon: "none" }); } }, + testSend(){ + const token = wx.getStorageSync("token"); + wx.request({ + url: `${envConfig.apiBaseUrl}/user/test`, + method: "POST", + data: { + + }, + header:{ + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${token}` + } + , + success(res){ + console.log(res) + Toast({ + selector: '#t-toast', + message: '测试成功', + theme: 'success', + direction: 'column', + }); + } + }) + }, onBack() { // 获取当前页面栈 const pages = getCurrentPages(); diff --git a/miniprogram/pages/user-login/user-login.wxml b/miniprogram/pages/user-login/user-login.wxml index 1429edf..5102793 100644 --- a/miniprogram/pages/user-login/user-login.wxml +++ b/miniprogram/pages/user-login/user-login.wxml @@ -52,7 +52,7 @@