feat: 补充注释
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
// server/api/auth/me.get.ts - 当前用户接口:用 httpOnly 登录态恢复用户信息并刷新用户快照。
|
||||
import type { IUserMeData } from "#shared/types";
|
||||
import {
|
||||
clearNewApiAuthCookies,
|
||||
@@ -25,6 +26,16 @@ interface INewApiSelfUserData extends IUserMeData {
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
/**
|
||||
* GET /api/auth/me
|
||||
*
|
||||
* 流程:
|
||||
* 1. 从本站 httpOnly cookie 读取 NewAPI session/userId。
|
||||
* 2. 带 Cookie 与 New-Api-User 请求 NewAPI /api/user/self。
|
||||
* 3. 裁剪上游 self 响应,只返回前端需要的基础用户字段。
|
||||
* 4. 异步更新数据库里的用户快照。
|
||||
* 5. cookie 缺失、过期或上游鉴权失败时清理本地登录态并返回 401。
|
||||
*/
|
||||
export default defineEventHandler(async (event) => {
|
||||
const logger = createApiLogger("auth.me");
|
||||
logger.info("开始");
|
||||
@@ -46,7 +57,7 @@ export default defineEventHandler(async (event) => {
|
||||
logger.warn("登录状态无效", {
|
||||
upstreamMessage: normalized.message
|
||||
});
|
||||
return createErrorResponse(401, normalized.message);
|
||||
return createErrorResponse(401, "未登录");
|
||||
}
|
||||
|
||||
upsertUserSnapshot(normalized.user).catch((error) => {
|
||||
@@ -64,7 +75,7 @@ export default defineEventHandler(async (event) => {
|
||||
|
||||
return createSuccessResponse<IUserMeData>(
|
||||
normalized.user,
|
||||
normalized.message
|
||||
"获取用户信息成功"
|
||||
);
|
||||
} catch (error) {
|
||||
// cookie 缺失或上游鉴权异常时统一视为未登录。
|
||||
@@ -95,8 +106,7 @@ const normalizeUserResponse = (
|
||||
}
|
||||
|
||||
const wrapped = response as INewApiWrappedUserResponse;
|
||||
const message =
|
||||
wrapped.message || (wrapped.success ? "获取用户信息成功" : "未登录");
|
||||
const message = wrapped.success ? "获取用户信息成功" : "未登录";
|
||||
|
||||
if (wrapped.success !== true || !isUser(wrapped.data)) {
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user