feat: align with upstream 1.5.9.9

This commit is contained in:
2026-09-12 18:21:11 +08:00
commit 34f0679117
805 changed files with 376275 additions and 0 deletions
@@ -0,0 +1,31 @@
import { db } from '~/drizzle/db'
import { verifyBindingToken } from '~~/server/utils/oauth-token'
import { createApiError } from '~~/server/utils/apiError'
import { SERVER_ERROR_CODES } from '~~/server/config/constants'
import { fetchGradeClassOptions } from '~~/server/utils/grade-class-options'
export default defineEventHandler(async (event) => {
const config = await db.query.systemSettings.findFirst()
if (!config?.allowOAuthRegistration) {
throw createApiError(403, SERVER_ERROR_CODES.AUTH_OAUTH_REGISTER_DISABLED, '系统已关闭第三方账号注册功能')
}
const bindingToken = getCookie(event, 'binding-token')
if (!bindingToken) {
throw createApiError(401, SERVER_ERROR_CODES.AUTH_REGISTER_SESSION_EXPIRED, '注册会话已过期,请重新通过第三方登录发起')
}
try {
verifyBindingToken(bindingToken)
} catch {
deleteCookie(event, 'binding-token')
throw createApiError(401, SERVER_ERROR_CODES.AUTH_INVALID_REGISTER_TOKEN, '无效的注册令牌')
}
const classes = await fetchGradeClassOptions()
return {
success: true,
classes
}
})