Saat user baru registrasi maka akan diarahkan ke page waiting-room dan menunggu validasi admin

This commit is contained in:
2025-11-20 14:07:26 +08:00
parent a0537810e8
commit 78b8aa74cd
5 changed files with 89 additions and 139 deletions

View File

@@ -1,7 +1,8 @@
// app/api/auth/finalize-registration/route.ts
import prisma from "@/lib/prisma";
import { cookies } from "next/headers";
import { NextResponse } from "next/server";
import { sessionCreate } from "../_lib/session_create";
// import { sessionCreate } from "../_lib/session_create";
export async function POST(req: Request) {
try {
@@ -15,21 +16,28 @@ export async function POST(req: Request) {
// Buat user
const user = await prisma.user.create({
data: { username, nomor, isActive: true }
data: { username, nomor, isActive: false }
});
// Nonaktifkan OTP
await prisma.kodeOtp.update({ where: { id: kodeId }, data: { isActive: false } });
// Buat session
const token = await sessionCreate({
sessionKey: process.env.BASE_SESSION_KEY!,
jwtSecret: process.env.BASE_TOKEN_KEY!,
user: { id: user.id, nomor: user.nomor, username: user.username, roleId: user.roleId, isActive: true },
// const token = await sessionCreate({
// sessionKey: process.env.BASE_SESSION_KEY!,
// jwtSecret: process.env.BASE_TOKEN_KEY!,
// user: { id: user.id, nomor: user.nomor, username: user.username, roleId: user.roleId, isActive: true },
// });
(await cookies()).set('desadarmasaba_user_id', user.id, {
httpOnly: true,
secure: process.env.NODE_ENV === 'production',
path: '/',
maxAge: 30 * 24 * 60 * 60, // 30 hari
});
const response = NextResponse.json({ success: true, roleId: user.roleId });
response.cookies.set(process.env.BASE_SESSION_KEY!, token, { /* options */ });
// response.cookies.set(process.env.BASE_SESSION_KEY!, token, { /* options */ });
return response;
} catch (error) {
console.error('Finalize Registration Error:', error);