diff options
| author | Mohamed Bassem <me@mbassem.com> | 2025-04-15 19:36:51 +0000 |
|---|---|---|
| committer | Mohamed Bassem <me@mbassem.com> | 2025-04-15 19:36:51 +0000 |
| commit | 7e39afa29f1674df4cac51c7894181f55f66aa12 (patch) | |
| tree | 55caff2f4d14e222a2d9c2b63157d28a438a96e7 /packages/trpc/routers/users.ts | |
| parent | d7244978e9e99ca20b99a9f751b1bfef77810e94 (diff) | |
| download | karakeep-7e39afa29f1674df4cac51c7894181f55f66aa12.tar.zst | |
fix: Add password salt to the user table
Diffstat (limited to 'packages/trpc/routers/users.ts')
| -rw-r--r-- | packages/trpc/routers/users.ts | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/packages/trpc/routers/users.ts b/packages/trpc/routers/users.ts index 75a1db0c..c56daaee 100644 --- a/packages/trpc/routers/users.ts +++ b/packages/trpc/routers/users.ts @@ -19,7 +19,7 @@ import { zWhoAmIResponseSchema, } from "@karakeep/shared/types/users"; -import { hashPassword, validatePassword } from "../auth"; +import { generatePasswordSalt, hashPassword, validatePassword } from "../auth"; import { adminProcedure, authedProcedure, @@ -42,13 +42,15 @@ export async function createUser( userRole = userCount == 0 ? "admin" : "user"; } + const salt = generatePasswordSalt(); try { const result = await trx .insert(users) .values({ name: input.name, email: input.email, - password: await hashPassword(input.password), + password: await hashPassword(input.password, salt), + salt, role: userRole, }) .returning({ @@ -149,10 +151,12 @@ export const usersAppRouter = router({ throw new TRPCError({ code: "UNAUTHORIZED" }); } invariant(user.id, ctx.user.id); + const newSalt = generatePasswordSalt(); await ctx.db .update(users) .set({ - password: await hashPassword(input.newPassword), + password: await hashPassword(input.newPassword, newSalt), + salt: newSalt, }) .where(eq(users.id, ctx.user.id)); }), |
