|
|
@@ -6,10 +6,12 @@ import Navbar from '@/components/ui/navbar'
|
|
|
import { isWeapp } from '@/utils/platform'
|
|
|
import { Button } from '@/components/ui/button'
|
|
|
import { authClient } from '@/api'
|
|
|
+import { useQueryClient } from '@tanstack/react-query'
|
|
|
|
|
|
export default function WechatLogin() {
|
|
|
const [loading, setLoading] = useState(false)
|
|
|
const [isWechatEnv, setIsWechatEnv] = useState(true)
|
|
|
+ const queryClient = useQueryClient()
|
|
|
|
|
|
// 设置导航栏标题并检查平台
|
|
|
useEffect(() => {
|
|
|
@@ -77,15 +79,19 @@ export default function WechatLogin() {
|
|
|
const { token, user, isNewUser } = await response.json()
|
|
|
|
|
|
// 4. 保存token和用户信息
|
|
|
- Taro.setStorageSync('userInfo', user)
|
|
|
+ Taro.setStorageSync('userInfo', JSON.stringify(user))
|
|
|
Taro.setStorageSync('mini_token', token) // 兼容RPC client的token存储
|
|
|
-
|
|
|
+
|
|
|
+ // 5. 手动更新认证状态缓存
|
|
|
+ // 由于微信登录不是通过 useAuth 的 login mutation,需要手动更新缓存
|
|
|
+ queryClient.setQueryData(['currentUser'], user)
|
|
|
+
|
|
|
Taro.showToast({
|
|
|
title: isNewUser ? '注册成功' : '登录成功',
|
|
|
icon: 'success',
|
|
|
duration: 1500
|
|
|
})
|
|
|
-
|
|
|
+
|
|
|
// 跳转到首页
|
|
|
setTimeout(() => {
|
|
|
Taro.switchTab({ url: '/pages/home/index' })
|