이름 오버레이 슬라이드와 로컬 메일 인증 우회 추가
캐릭터 이름 표시가 긴 항목은 카드 하단 텍스트를 자동 무한 슬라이드로 보여주고, 넘치지 않는 이름은 기존 고정 표시를 유지하도록 정리했다. 개발 환경에서는 SKIP_EMAIL_VERIFICATION=true 설정으로 가입 시 메일 인증 단계를 건너뛸 수 있게 보강했다. Made-with: Cursor
This commit is contained in:
@@ -30,6 +30,11 @@ const { isReservedNickname } = require('../lib/user-validation')
|
||||
const router = express.Router()
|
||||
const EMAIL_VERIFICATION_TTL_MS = 24 * 60 * 60 * 1000
|
||||
const PASSWORD_RESET_TTL_MS = 60 * 60 * 1000
|
||||
const SKIP_EMAIL_VERIFICATION = process.env.SKIP_EMAIL_VERIFICATION === 'true'
|
||||
|
||||
function shouldSkipEmailVerification() {
|
||||
return SKIP_EMAIL_VERIFICATION && process.env.NODE_ENV !== 'production'
|
||||
}
|
||||
|
||||
function resolveNicknameChangeIntervalMs() {
|
||||
const rawHours = String(process.env.NICKNAME_CHANGE_INTERVAL_HOURS || '').trim()
|
||||
@@ -211,7 +216,8 @@ router.post('/signup', async (req, res) => {
|
||||
|
||||
const passwordHash = await bcrypt.hash(password, 10)
|
||||
const isAdmin = (await countUsers()) === 0
|
||||
if (!isAdmin && !isMailerConfigured()) {
|
||||
const skipEmailVerification = !isAdmin && shouldSkipEmailVerification()
|
||||
if (!isAdmin && !skipEmailVerification && !isMailerConfigured()) {
|
||||
return res.status(503).json({ error: 'mail_not_configured' })
|
||||
}
|
||||
|
||||
@@ -220,11 +226,11 @@ router.post('/signup', async (req, res) => {
|
||||
email,
|
||||
nickname,
|
||||
passwordHash,
|
||||
emailVerified: isAdmin,
|
||||
emailVerified: isAdmin || skipEmailVerification,
|
||||
isAdmin,
|
||||
})
|
||||
|
||||
if (!isAdmin) {
|
||||
if (!isAdmin && !skipEmailVerification) {
|
||||
try {
|
||||
await issueEmailVerificationMail(req, user)
|
||||
return res.json({
|
||||
|
||||
Reference in New Issue
Block a user