From ef4de292820ad810f3d8a2c1f4afa3ebd5c5852f Mon Sep 17 00:00:00 2001 From: Julien Froidefond Date: Thu, 16 Oct 2025 14:47:55 +0200 Subject: [PATCH] feat: enhance user login functionality by adding 'remember me' option for cookie persistence --- src/app/api/auth/login/route.ts | 4 ++-- src/lib/services/auth-server.service.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/app/api/auth/login/route.ts b/src/app/api/auth/login/route.ts index 84c76bb..ed41ade 100644 --- a/src/app/api/auth/login/route.ts +++ b/src/app/api/auth/login/route.ts @@ -7,11 +7,11 @@ import { getErrorMessage } from "@/utils/errors"; import type { NextRequest } from "next/server"; export async function POST(request: NextRequest) { try { - const { email, password } = await request.json(); + const { email, password, remember } = await request.json(); try { const userData: UserData = await AuthServerService.loginUser(email, password); - await AuthServerService.setUserCookie(userData); + await AuthServerService.setUserCookie(userData, remember); return NextResponse.json({ message: "✅ Connexion réussie", diff --git a/src/lib/services/auth-server.service.ts b/src/lib/services/auth-server.service.ts index f9a58ee..7ca16cc 100644 --- a/src/lib/services/auth-server.service.ts +++ b/src/lib/services/auth-server.service.ts @@ -67,7 +67,7 @@ export class AuthServerService { return true; } - static async setUserCookie(userData: UserData): Promise { + static async setUserCookie(userData: UserData, remember: boolean = false): Promise { // Encode user data in base64 const encodedUserData = Buffer.from(JSON.stringify(userData)).toString("base64"); @@ -78,7 +78,7 @@ export class AuthServerService { secure: process.env.NODE_ENV === "production", sameSite: "lax", path: "/", - maxAge: 24 * 60 * 60, // 24 hours by default for new users + maxAge: remember ? 30 * 24 * 60 * 60 : 24 * 60 * 60, // 30 days if remember, 24 hours otherwise }); }