feat: 新增用户状态检查和 api key 准备功能
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
import type { IUserReadyData } from "#shared/types";
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
try {
|
||||
const result = await ensureAiArtStudioToken(event);
|
||||
|
||||
return createSuccessResponse<IUserReadyData>(
|
||||
result,
|
||||
result.created ? "环境初始化完成" : "环境已准备"
|
||||
);
|
||||
} catch (error) {
|
||||
if (isUnauthorizedError(error)) {
|
||||
clearNewApiAuthCookies(event);
|
||||
return createErrorResponse(401, "未登录");
|
||||
}
|
||||
|
||||
return createUpstreamErrorResponse(error, "环境准备失败");
|
||||
}
|
||||
});
|
||||
|
||||
/** 鉴权失败时清理本地 cookie,避免继续携带失效的 NewAPI 登录态 */
|
||||
const isUnauthorizedError = (error: unknown): boolean => {
|
||||
const fetchError = error as {
|
||||
response?: {
|
||||
status?: number;
|
||||
};
|
||||
status?: number;
|
||||
statusCode?: number;
|
||||
};
|
||||
|
||||
return (
|
||||
fetchError.statusCode === 401 ||
|
||||
fetchError.status === 401 ||
|
||||
fetchError.response?.status === 401
|
||||
);
|
||||
};
|
||||
Reference in New Issue
Block a user