debug: /auth-debug page to surface server-side auth state for a request
This commit is contained in:
65
src/app/auth-debug/page.tsx
Normal file
65
src/app/auth-debug/page.tsx
Normal file
@@ -0,0 +1,65 @@
|
||||
import { cookies } from "next/headers";
|
||||
import { createClient } from "@/lib/supabase/server";
|
||||
|
||||
export const dynamic = "force-dynamic";
|
||||
export const runtime = "nodejs";
|
||||
|
||||
export default async function AuthDebugPage() {
|
||||
const cookieStore = await cookies();
|
||||
const allCookies = cookieStore.getAll();
|
||||
const sbCookies = allCookies.filter((c) => c.name.startsWith("sb-"));
|
||||
|
||||
let session: any = null;
|
||||
let user: any = null;
|
||||
let getSessionError: string | null = null;
|
||||
let getUserError: string | null = null;
|
||||
|
||||
try {
|
||||
const supabase = await createClient();
|
||||
const sessRes = await supabase.auth.getSession();
|
||||
session = sessRes.data?.session;
|
||||
if (sessRes.error) getSessionError = sessRes.error.message;
|
||||
const userRes = await supabase.auth.getUser();
|
||||
user = userRes.data?.user;
|
||||
if (userRes.error) getUserError = userRes.error.message;
|
||||
} catch (e: any) {
|
||||
getSessionError = e?.message || String(e);
|
||||
}
|
||||
|
||||
return (
|
||||
<pre style={{ padding: 20, fontFamily: "monospace", whiteSpace: "pre-wrap", background: "#111", color: "#ddd", minHeight: "100vh" }}>
|
||||
{JSON.stringify(
|
||||
{
|
||||
note: "Server-side view of auth state for the request that loaded this page.",
|
||||
cookies_total: allCookies.length,
|
||||
sb_cookies: sbCookies.map((c) => ({ name: c.name, value_prefix: c.value.slice(0, 40) + (c.value.length > 40 ? "…" : "") })),
|
||||
other_cookie_names: allCookies.filter((c) => !c.name.startsWith("sb-")).map((c) => c.name),
|
||||
auth_getSession_error: getSessionError,
|
||||
auth_getUser_error: getUserError,
|
||||
has_session: !!session,
|
||||
session: session
|
||||
? {
|
||||
access_token_len: session.access_token?.length,
|
||||
refresh_token_len: session.refresh_token?.length,
|
||||
expires_in: session.expires_in,
|
||||
expires_at: session.expires_at,
|
||||
token_type: session.token_type,
|
||||
user_id: session.user?.id,
|
||||
user_email: session.user?.email,
|
||||
}
|
||||
: null,
|
||||
user: user
|
||||
? {
|
||||
id: user.id,
|
||||
email: user.email,
|
||||
aud: user.aud,
|
||||
role: user.role,
|
||||
}
|
||||
: null,
|
||||
},
|
||||
null,
|
||||
2,
|
||||
)}
|
||||
</pre>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user