基本重构完成

This commit is contained in:
lik
2026-10-07 14:55:06 +08:00
parent f655c906f5
commit f0adf77a41
23 changed files with 1284 additions and 685 deletions
+30 -26
View File
@@ -230,33 +230,37 @@ Page({
},
handleLogin(e) {
// 微信手机号 code 是一次性凭证(5 分钟内有效、只能用一次),只能在服务端消费一次。
// 所以不能先调 /user/wxgetphonenumber 把它用掉、再在 wxSignin 里复用——
// 那样第二次向微信换号必然报 invalid code。
// wxSignin 内部已做可信的服务端换号(api/user/handler/users.js),直接交给它即可。
const phoneCode = e.detail.code ? e.detail.code : ''
API.user.wxGetPhoneNumber({ code: phoneCode })
.then((data) => {
const phoneNumber = data.data.phoneNumber
wx.setStorageSync('user_phonenumber', phoneNumber)
wx.login({
success: (res) => {
if (res.code) {
API.user.wxSignin({ phoneNumber, phoneCode, code: res.code })
.then((data) => {
if (data.code == 0) {
const app = getApp()
app.globalData.user = data.data.user
// 用户重新授权登录,解除对静默重登的拦截
wx.removeStorageSync('has_logout')
this.loadUserInfo()
}
})
} else {
console.log('登录失败!' + res.errMsg)
wx.login({
success: (res) => {
if (!res.code) {
console.log('登录失败!' + res.errMsg)
return
}
API.user.wxSignin({ phoneCode, code: res.code })
.then((data) => {
if (data.code !== 0) {
// 后端失败(如 code 过期、该手机号已注册等)此前被静默吞掉,
// 用户点了授权却毫无反馈,这里补一个提示
wx.showToast({ title: data.msg || '登录失败', icon: 'none' })
return
}
}
})
})
.catch((err) => {
wx.showToast({ title: '网络请求失败', icon: 'none' })
console.log('请求失败', err)
})
const app = getApp()
app.globalData.user = data.data.user
wx.setStorageSync('user_phonenumber', data.data.user?.profile?.mobile || '')
// 用户重新授权登录,解除对静默重登的拦截
wx.removeStorageSync('has_logout')
this.loadUserInfo()
})
.catch((err) => {
wx.showToast({ title: '网络请求失败', icon: 'none' })
console.log('请求失败', err)
})
}
})
}
})