@@ -151,6 +151,7 @@ router.post('/register', async (req, res) => {
151151 const { email, username, password, capToken, rgpdConsent } = req . body ;
152152
153153 const ip = getClientIp ( req ) ;
154+ const userAgent = ( req . headers [ 'user-agent' ] || 'unknown' ) . toString ( ) . slice ( 0 , 512 ) ;
154155
155156 if ( ! email || ! username || ! password ) {
156157 return res . status ( 400 ) . json ( { error : 'Email, username and password are required' } ) ;
@@ -219,12 +220,12 @@ router.post('/register', async (req, res) => {
219220 createdPteroUserId = pteroUser . id ;
220221
221222 const insertResult = await query (
222- 'INSERT INTO users (email, username, password_hash, ptero_user_id, ptero_uuid, first_name, last_name, password_set) VALUES (?, ?, ?, ?, ?, ?, ?, 1)' ,
223- [ email , username , passwordHash , pteroUser . id , pteroUser . uuid , username , 'User' ]
223+ 'INSERT INTO users (email, username, password_hash, ptero_user_id, ptero_uuid, first_name, last_name, password_set, user_agent ) VALUES (?, ?, ?, ?, ?, ?, ?, 1, ? )' ,
224+ [ email , username , passwordHash , pteroUser . id , pteroUser . uuid , username , 'User' , userAgent ]
224225 ) ;
225226 const localUserId = insertResult . insertId ;
226227
227- await query ( 'INSERT INTO user_ips (user_id, ip_address) VALUES (?, ?)' , [ localUserId , ip ] ) . catch ( err => {
228+ await query ( 'INSERT INTO user_ips (user_id, ip_address, user_agent ) VALUES (?, ?, ? )' , [ localUserId , ip , userAgent ] ) . catch ( err => {
228229 console . error ( 'Failed to log IP:' , err . message ) ;
229230 } ) ;
230231
@@ -387,6 +388,7 @@ router.post('/login', async (req, res) => {
387388 }
388389
389390 const ip = getClientIp ( req ) ;
391+ const userAgent = ( req . headers [ 'user-agent' ] || 'unknown' ) . toString ( ) . slice ( 0 , 512 ) ;
390392
391393 // VPN / Proxy detection — checked first for security
392394 if ( await isVpnOrProxy ( ip ) ) {
@@ -451,6 +453,13 @@ router.post('/login', async (req, res) => {
451453
452454 recordLoginAttempt ( ip , true ) ;
453455
456+ await query ( 'UPDATE users SET user_agent = ? WHERE id = ?' , [ userAgent , user . id ] ) . catch ( err => {
457+ console . error ( 'Failed to update user_agent:' , err . message ) ;
458+ } ) ;
459+ await query ( 'INSERT INTO user_ips (user_id, ip_address, user_agent) VALUES (?, ?, ?)' , [ user . id , ip , userAgent ] ) . catch ( err => {
460+ console . error ( 'Failed to log login IP:' , err . message ) ;
461+ } ) ;
462+
454463 res . json ( {
455464 token,
456465 user : {
0 commit comments