feat: 多功能更新
This commit is contained in:
@@ -1,21 +1,31 @@
|
||||
import type { IUserLogoutData } from "#shared/types";
|
||||
import {
|
||||
clearNewApiAuthCookies,
|
||||
createApiLogger,
|
||||
createSuccessResponse,
|
||||
newApiAuthedFetch
|
||||
newApiAuthedFetch,
|
||||
toSafeLogError
|
||||
} from "~~/server/utils";
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
const logger = createApiLogger("auth.logout");
|
||||
logger.info("开始");
|
||||
|
||||
try {
|
||||
// 带上本站 httpOnly cookie 中的 NewAPI 登录态,请求上游销毁 session。
|
||||
await newApiAuthedFetch<IUserLogoutData>(event, "/api/user/logout", {
|
||||
method: "GET"
|
||||
});
|
||||
} catch {
|
||||
logger.info("上游登出成功");
|
||||
} catch (error) {
|
||||
// 上游 session 可能已失效,本地仍然必须清理,避免残留坏登录态。
|
||||
logger.warn("上游登出失败,继续清理本地登录态", {
|
||||
error: toSafeLogError(error)
|
||||
});
|
||||
} finally {
|
||||
clearNewApiAuthCookies(event);
|
||||
}
|
||||
|
||||
logger.done("成功");
|
||||
return createSuccessResponse<IUserLogoutData>(null, "登出成功");
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user