@@ -2,6 +2,7 @@ import { verifyPassword } from '@/lib/crypto';
22import { prisma } from '@/lib/db' ;
33import { User , userSelect } from '@/lib/db/models/user' ;
44import { log } from '@/lib/logger' ;
5+ import { secondlyRatelimit } from '@/lib/ratelimits' ;
56import { verifyTotpCode } from '@/lib/totp' ;
67import { getSession , saveSession } from '@/server/session' ;
78import fastifyPlugin from 'fastify-plugin' ;
@@ -22,7 +23,7 @@ const logger = log('api').c('auth').c('login');
2223export const PATH = '/api/auth/login' ;
2324export default fastifyPlugin (
2425 ( server , _ , done ) => {
25- server . post < { Body : Body } > ( PATH , async ( req , res ) => {
26+ server . post < { Body : Body } > ( PATH , secondlyRatelimit ( 2 ) , async ( req , res ) => {
2627 const session = await getSession ( req , res ) ;
2728
2829 session . id = null ;
@@ -43,7 +44,7 @@ export default fastifyPlugin(
4344 token : true ,
4445 } ,
4546 } ) ;
46- if ( ! user ) return res . badRequest ( 'Invalid username' ) ;
47+ if ( ! user ) return res . badRequest ( 'Invalid username or password ' ) ;
4748
4849 if ( ! user . password ) return res . badRequest ( 'User does not have a password, login through a provider' ) ;
4950 const valid = await verifyPassword ( password , user . password ) ;
@@ -53,7 +54,7 @@ export default fastifyPlugin(
5354 ip : req . ip ?? 'unknown' ,
5455 ua : req . headers [ 'user-agent' ] ,
5556 } ) ;
56- return res . badRequest ( 'Invalid password' ) ;
57+ return res . badRequest ( 'Invalid username or password' ) ;
5758 }
5859
5960 if ( user . totpSecret && code ) {
0 commit comments