v1.1.0: keyboard shortcuts (CH), onboarding tour, admin projects tab, remember-me login, Luftbild CH removed, hose settings in admin, credit link, font Barlow, map auto-save viewport, rate-limit 10/5min
This commit is contained in:
@@ -22,11 +22,16 @@ export async function POST(request: NextRequest) {
|
||||
}
|
||||
|
||||
const { email, password } = validated.data
|
||||
const rememberMe = body.rememberMe === true
|
||||
const result = await login(email, password)
|
||||
|
||||
if (!result.success || !result.user) {
|
||||
const remaining = rl.remaining
|
||||
const warningText = remaining <= 3 && remaining > 0
|
||||
? ` (Noch ${remaining} Versuch${remaining === 1 ? '' : 'e'})`
|
||||
: ''
|
||||
return NextResponse.json(
|
||||
{ error: result.error || 'Login fehlgeschlagen' },
|
||||
{ error: (result.error || 'Login fehlgeschlagen') + warningText, remaining },
|
||||
{ status: 401 }
|
||||
)
|
||||
}
|
||||
@@ -39,13 +44,13 @@ export async function POST(request: NextRequest) {
|
||||
})
|
||||
} catch {}
|
||||
|
||||
const token = await createToken(result.user)
|
||||
const token = await createToken(result.user, rememberMe)
|
||||
|
||||
;(await cookies()).set('auth-token', token, {
|
||||
httpOnly: true,
|
||||
secure: process.env.NODE_ENV === 'production',
|
||||
sameSite: 'lax',
|
||||
maxAge: 60 * 60 * 24, // 24 hours
|
||||
maxAge: rememberMe ? 60 * 60 * 24 * 30 : 60 * 60 * 24, // 30 days or 24 hours
|
||||
path: '/',
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user