diff --git a/server/middleware/06.ip.ts b/server/middleware/06.ip.ts new file mode 100644 index 0000000..04441e3 --- /dev/null +++ b/server/middleware/06.ip.ts @@ -0,0 +1,20 @@ +export default eventHandler(async (ev) => { + if (ev.context.currentUser) { + let log = ev.context.currentUser.ipLog; + if ( + ev.context.clientAddress !== undefined && + !/127\.0\.0\.1|localhost|::1/.test(ev.context.clientAddress) + ) { + let found = log.findIndex((a) => a.ip === ev.context.clientAddress); + if (found !== -1) { + ev.context.currentUser.ipLog[found].lastAccess = new Date(); + } else { + ev.context.currentUser.ipLog.push({ + ip: ev.context.clientAddress!, + lastAccess: new Date(), + }); + } + } + await ev.context.currentUser.save(); + } +});