fix oauth google sign
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user