15 lines
480 B
TypeScript
15 lines
480 B
TypeScript
const FAILED_LOGIN_DELAY_MS = 1000
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
const { password } = await readValidBody(event, loginSchema)
|
|
|
|
if (!(await passwordMatches(event, password))) {
|
|
await new Promise(resolve => setTimeout(resolve, FAILED_LOGIN_DELAY_MS))
|
|
throw createError({ statusCode: 401, statusMessage: 'Wrong password' })
|
|
}
|
|
|
|
const session = await diarySession(event)
|
|
await session.update({ unlocked: true })
|
|
return { unlocked: true }
|
|
})
|