diff --git a/src/app/api/admin/users/[id]/login-token/route.ts b/src/app/api/admin/users/[id]/login-token/route.ts index 026aca0..05fb69d 100644 --- a/src/app/api/admin/users/[id]/login-token/route.ts +++ b/src/app/api/admin/users/[id]/login-token/route.ts @@ -8,7 +8,6 @@ import { requireAuth, requireAdmin, AuthenticatedRequest } from '@/lib/middlewar import { prisma } from '@/lib/db'; import { RMABLogger } from '@/lib/utils/logger'; import { generateApiToken } from '@/lib/utils/api-token'; -import crypto from 'crypto'; const logger = RMABLogger.create('API.Admin.Users.LoginToken'); @@ -37,8 +36,7 @@ export async function POST( ); } - const { fullToken } = generateApiToken(); - const tokenHash = crypto.createHash('sha256').update(fullToken).digest('hex'); + const { fullToken, tokenHash } = generateApiToken(); await prisma.user.update({ where: { id }, diff --git a/tests/api/admin-login-token.routes.test.ts b/tests/api/admin-login-token.routes.test.ts index bd5af3c..e6b2eb4 100644 --- a/tests/api/admin-login-token.routes.test.ts +++ b/tests/api/admin-login-token.routes.test.ts @@ -32,7 +32,7 @@ describe('Admin login token routes', () => { authRequest = { user: { id: 'admin-1', username: 'admin', role: 'admin' }, json: vi.fn() }; requireAuthMock.mockImplementation((_req: any, handler: any) => handler(authRequest)); requireAdminMock.mockImplementation((_req: any, handler: any) => handler()); - generateApiTokenMock.mockReturnValue({ fullToken: 'rmab_test_token' }); + generateApiTokenMock.mockReturnValue({ fullToken: 'rmab_test_token', tokenHash: 'hash_abc123' }); }); describe('POST /api/admin/users/[id]/login-token', () => {