import { db } from '~~/server/lib/db'; /** * Lists the signed in devices for the current user. Session tokens are left * out on purpose: the client only ever needs the id to sign a device out. */ export default defineEventHandler(async (event) => { const sessionData = await protectRoute(event); const result = await db.query.sessions.findMany({ where: { userId: sessionData.user.id, expiresAt: { gt: new Date(), }, }, orderBy: { updatedAt: 'desc', }, }); return result.map(session => ({ id: session.id, createdAt: session.createdAt, updatedAt: session.updatedAt, ipAddress: session.ipAddress, userAgent: session.userAgent, current: session.id === sessionData.session.id, })); });