Files
BYW-VoiceHub/server/api/admin/system-settings/env-oauth.get.ts
T

35 lines
1.0 KiB
TypeScript

const hasEnvValue = (value?: string) => typeof value === 'string' && value.trim().length > 0
export default defineEventHandler((event) => {
// 检查用户认证和权限
const user = event.context.user
if (!user) {
throw createError({
statusCode: 401,
message: '未授权访问'
})
}
if (!['ADMIN', 'SUPER_ADMIN'].includes(user.role)) {
throw createError({
statusCode: 403,
message: '只有管理员才能查看环境变量'
})
}
return {
hasBaseConfig: !!(process.env.OAUTH_REDIRECT_URI || process.env.OAUTH_STATE_SECRET),
hasGithubConfig: !!(process.env.GITHUB_CLIENT_ID && process.env.GITHUB_CLIENT_SECRET),
hasCasdoorConfig: !!(
process.env.CASDOOR_ENDPOINT &&
process.env.CASDOOR_CLIENT_ID &&
process.env.CASDOOR_CLIENT_SECRET
),
hasGoogleConfig: !!(process.env.GOOGLE_CLIENT_ID && process.env.GOOGLE_CLIENT_SECRET),
hasAggregateConfig:
hasEnvValue(process.env.AGGREGATE_OAUTH_APP_ID) &&
hasEnvValue(process.env.AGGREGATE_OAUTH_APP_KEY)
}
})