Files
inkreach-official-website/apps/website/nuxt.config.ts
T
yeuimu 9c1106586a fix(security): harden auth, upload, and API configuration
- Lock public registration to first-user bootstrap (403 afterwards)
- Require JwtAuthGuard on upload + whitelist png/jpg/webp/gif (SVG/XSS blocked)
- Add global throttling (login/register 5/min, upload 10/min)
- Add helmet security headers; serve uploads with nosniff
- Replace permissive CORS (origin:true+credentials) with CORS_ORIGINS whitelist
- Disable Swagger outside development; sanitize 500 error responses
- Enforce 32+ char JWT_SECRET; make token expiry configurable (TOKEN_EXPIRES_IN)
- Re-check user in DB on every JWT validation (revocation on user delete)
- Dummy bcrypt compare to prevent login user-enumeration via timing
- Map malformed BigInt inputs to 400 instead of 500
- Widen .gitignore to .env* and add apps/api/.env.example
- Disable Nuxt devtools and sourcemaps
2026-08-22 11:55:13 +08:00

37 lines
701 B
TypeScript

export default defineNuxtConfig({
compatibilityDate: '2025-07-15',
devtools: { enabled: false },
sourcemap: { server: false, client: false },
modules: ['@nuxtjs/seo'],
css: ['~/assets/css/tailwind.css', '@fortawesome/fontawesome-free/css/all.min.css'],
postcss: {
plugins: {
'@tailwindcss/postcss': {},
},
},
site: {
url: 'https://inkreach.com',
name: 'Inkreach',
description: 'InkReach Official Website',
defaultLocale: 'en',
},
app: {
head: {
link: [
{ rel: 'icon', type: 'image/png', href: '/logo-橙@2x.png' },
],
},
},
runtimeConfig: {
public: {
backendUrl: 'http://localhost:3001',
},
},
})