fix oauth google sign

This commit is contained in:
2026-05-21 12:20:28 +07:00
parent 03887fb1cd
commit 81a0c2c6c8
3 changed files with 36 additions and 9 deletions
+10 -7
View File
@@ -38,13 +38,16 @@ function LoginForm() {
if (result?.error) {
setError(result.error);
} else {
const rawCallback = searchParams.get("callbackUrl");
let next = safeInternalPath(rawCallback);
// Tanpa callbackUrl eksplisit, arahkan admin ke dashboard /admin.
if (!rawCallback) {
const session = await getSession();
if (session?.user?.isAdmin) next = "/admin";
}
const callbackPath = safeInternalPath(searchParams.get("callbackUrl"));
const session = await getSession();
// Admin selalu diarahkan ke dashboard /admin setelah login — kecuali
// callbackUrl memang menuju sub-halaman admin (deep link dari /admin/...).
// callbackUrl non-admin (mis. "/" sisa dari percobaan login Google) tidak
// boleh membuat admin "nyangkut" di halaman publik.
const next =
session?.user?.isAdmin && !callbackPath.startsWith("/admin")
? "/admin"
: callbackPath;
router.push(next);
router.refresh();
}