This commit is contained in:
2025-09-05 23:35:32 +08:00
parent dba965344a
commit 2b4a3b6f1b
7 changed files with 246 additions and 53 deletions
+27 -32
View File
@@ -62,7 +62,7 @@
<script>
import { ref } from 'vue'
import { updatePhoneNumber } from '@/http/api/auth.js'
import { wxPhoneLogin } from '@/http/api/auth.js'
import {
savePhoneAuthData,
markPhoneSkipped,
@@ -164,53 +164,48 @@ export default {
}
}
// 调用后端API验证手机号
// 调用后端API进行手机号登录
const phoneData = {
code: loginCode,
encryptedData: e.detail.encryptedData,
iv: e.detail.iv
}
console.log(phoneData)
console.log('准备调用手机号更新API:', {
hasEncryptedData: !!phoneData.encryptedData,
hasIv: !!phoneData.iv,
apiUrl: '/user/wechat/mini/phone-update'
})
// 调用手机号更新API(需要用户已登录)
const phoneNumber = await updatePhoneNumber({
encryptedData: phoneData.encryptedData,
iv: phoneData.iv
}, {
// 调用手机号登录API
const result = await wxPhoneLogin(phoneData, {
custom: {
loading: false, // 使用页面自己的loading状态
catch: true // 确保错误能被catch到
}
})
console.log('手机号更新成功:', phoneNumber)
// 处理登录结果
if (result && result.token) {
// 保存手机号登录数据
savePhoneAuthData({
token: result.token,
refreshToken: result.refreshToken,
userInfo: result.userInfo || result
})
// 更新本地用户信息
const userInfo = authStore.userInfo
if (userInfo) {
userInfo.phone = phoneNumber
authStore.setUserInfo(userInfo)
uni.showToast({
title: '手机号授权成功',
icon: 'success',
duration: 1500
})
// 跳转到用户信息设置页面
setTimeout(() => {
uni.navigateTo({
url: '/pages/profile/user-info?mode=setup'
})
}, 1500)
} else {
throw new Error('手机号登录失败')
}
uni.showToast({
title: '手机号更新成功',
icon: 'success'
})
// 返回上一页
setTimeout(() => {
uni.navigateBack()
}, 1500)
} catch (error) {
console.error('手机号更新失败:', error)
console.error('手机号授权失败:', error)
handleError(error)
} finally {
authorizing.value = false