From d932d9af1c6abba052c212f64fb5c103953904b2 Mon Sep 17 00:00:00 2001 From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com> Date: Thu, 1 Oct 2026 13:48:48 +0700 Subject: [PATCH] refactor: extract password hashing functions into a dedicated password module --- src/app/actions.ts | 3 ++- src/lib/auth.ts | 9 --------- src/lib/password.ts | 9 +++++++++ 3 files changed, 11 insertions(+), 10 deletions(-) create mode 100644 src/lib/password.ts diff --git a/src/app/actions.ts b/src/app/actions.ts index b42bb82..6088b07 100644 --- a/src/app/actions.ts +++ b/src/app/actions.ts @@ -3,7 +3,8 @@ import prisma from '@/lib/prisma' import { revalidatePath } from 'next/cache' -import { hashPassword, verifyPassword, encrypt, decrypt } from '@/lib/auth' +import { encrypt, decrypt } from '@/lib/auth' +import { hashPassword, verifyPassword } from '@/lib/password' import { cookies } from 'next/headers' import { sendMattermostNotification } from '@/lib/mattermost' diff --git a/src/lib/auth.ts b/src/lib/auth.ts index 11555d0..e92fb5e 100644 --- a/src/lib/auth.ts +++ b/src/lib/auth.ts @@ -1,18 +1,9 @@ import { SignJWT, jwtVerify } from 'jose' -import bcrypt from 'bcryptjs' import { cookies } from 'next/headers' const secretKey = process.env.JWT_SECRET const key = new TextEncoder().encode(secretKey) -export async function hashPassword(password: string) { - return await bcrypt.hash(password, 10) -} - -export async function verifyPassword(password: string, hash: string) { - return await bcrypt.compare(password, hash) -} - export async function encrypt(payload: any) { return await new SignJWT(payload).setProtectedHeader({ alg: 'HS256' }).setIssuedAt().sign(key) // No expiration as requested } diff --git a/src/lib/password.ts b/src/lib/password.ts new file mode 100644 index 0000000..e380d0e --- /dev/null +++ b/src/lib/password.ts @@ -0,0 +1,9 @@ +import bcrypt from 'bcryptjs' + +export async function hashPassword(password: string) { + return await bcrypt.hash(password, 10) +} + +export async function verifyPassword(password: string, hash: string) { + return await bcrypt.compare(password, hash) +}