feat(auth): 添加从服务器获取授权信息的功能
当本地没有用户信息时,新增调用getAuthInfoAPI接口检查用户授权状态
Showing
1 changed file
with
11 additions
and
1 deletions
| 1 | /* | 1 | /* |
| 2 | * @Date: 2025-03-20 21:11:31 | 2 | * @Date: 2025-03-20 21:11:31 |
| 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com | 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com |
| 4 | - * @LastEditTime: 2025-05-23 09:50:46 | 4 | + * @LastEditTime: 2025-06-13 11:09:37 |
| 5 | * @FilePath: /mlaj/src/contexts/auth.js | 5 | * @FilePath: /mlaj/src/contexts/auth.js |
| 6 | * @Description: 认证上下文管理模块,提供用户认证状态管理、登录登出功能 | 6 | * @Description: 认证上下文管理模块,提供用户认证状态管理、登录登出功能 |
| 7 | */ | 7 | */ |
| ... | @@ -9,6 +9,7 @@ | ... | @@ -9,6 +9,7 @@ |
| 9 | // 导入Vue的组合式API相关函数 | 9 | // 导入Vue的组合式API相关函数 |
| 10 | import { ref, provide, inject, onMounted } from 'vue' | 10 | import { ref, provide, inject, onMounted } from 'vue' |
| 11 | import { logoutAPI, getUserInfoAPI } from '@/api/users' | 11 | import { logoutAPI, getUserInfoAPI } from '@/api/users' |
| 12 | +import { getAuthInfoAPI } from '@/api/auth' | ||
| 12 | 13 | ||
| 13 | // 创建认证上下文的Symbol key,用于provide/inject依赖注入 | 14 | // 创建认证上下文的Symbol key,用于provide/inject依赖注入 |
| 14 | // 使用Symbol确保key的唯一性,避免命名冲突 | 15 | // 使用Symbol确保key的唯一性,避免命名冲突 |
| ... | @@ -68,6 +69,15 @@ export function provideAuth() { | ... | @@ -68,6 +69,15 @@ export function provideAuth() { |
| 68 | } else { | 69 | } else { |
| 69 | logout() | 70 | logout() |
| 70 | } | 71 | } |
| 72 | + } else { | ||
| 73 | + // 查询用户是否授权, 从服务器获取用户信息并更新本地存储 | ||
| 74 | + const { code, data } = await getAuthInfoAPI(); | ||
| 75 | + if(code) { | ||
| 76 | + if (data.openid_has) { | ||
| 77 | + currentUser.value = data.user | ||
| 78 | + localStorage.setItem('currentUser', JSON.stringify(currentUser.value)) | ||
| 79 | + } | ||
| 80 | + } | ||
| 71 | } | 81 | } |
| 72 | // 初始化完成,关闭加载状态 | 82 | // 初始化完成,关闭加载状态 |
| 73 | loading.value = false | 83 | loading.value = false | ... | ... |
-
Please register or login to post a comment