23 lines
784 B
TypeScript
23 lines
784 B
TypeScript
// server/middleware/registration-guard.ts - 注册开关守卫
|
|
//
|
|
// 拦截 POST /api/auth/sign-up/email,若系统配置关闭了注册,立即返回 403。
|
|
// 此中间件优先于 Better Auth catch-all handler 执行,无需改动 auth.ts。
|
|
|
|
import { getRequestURL, setResponseStatus } from "h3";
|
|
|
|
import { apiErr } from "~~/server/utils/response";
|
|
import { getSysConfig } from "~~/server/utils/sysConfig";
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
const { pathname } = getRequestURL(event);
|
|
|
|
// 只拦截注册接口
|
|
if (pathname !== "/api/auth/sign-up/email" || event.method !== "POST") return;
|
|
|
|
const cfg = await getSysConfig();
|
|
if (!cfg.allowRegistration) {
|
|
setResponseStatus(event, 403);
|
|
return apiErr(403, "当前未开启注册");
|
|
}
|
|
});
|