feat: enhance user login functionality by adding 'remember me' option for cookie persistence
This commit is contained in:
@@ -7,11 +7,11 @@ import { getErrorMessage } from "@/utils/errors";
|
|||||||
import type { NextRequest } from "next/server";
|
import type { NextRequest } from "next/server";
|
||||||
export async function POST(request: NextRequest) {
|
export async function POST(request: NextRequest) {
|
||||||
try {
|
try {
|
||||||
const { email, password } = await request.json();
|
const { email, password, remember } = await request.json();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const userData: UserData = await AuthServerService.loginUser(email, password);
|
const userData: UserData = await AuthServerService.loginUser(email, password);
|
||||||
await AuthServerService.setUserCookie(userData);
|
await AuthServerService.setUserCookie(userData, remember);
|
||||||
|
|
||||||
return NextResponse.json({
|
return NextResponse.json({
|
||||||
message: "✅ Connexion réussie",
|
message: "✅ Connexion réussie",
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ export class AuthServerService {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static async setUserCookie(userData: UserData): Promise<void> {
|
static async setUserCookie(userData: UserData, remember: boolean = false): Promise<void> {
|
||||||
// Encode user data in base64
|
// Encode user data in base64
|
||||||
const encodedUserData = Buffer.from(JSON.stringify(userData)).toString("base64");
|
const encodedUserData = Buffer.from(JSON.stringify(userData)).toString("base64");
|
||||||
|
|
||||||
@@ -78,7 +78,7 @@ export class AuthServerService {
|
|||||||
secure: process.env.NODE_ENV === "production",
|
secure: process.env.NODE_ENV === "production",
|
||||||
sameSite: "lax",
|
sameSite: "lax",
|
||||||
path: "/",
|
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
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user