feat(frontend): settings page reads user from V2 Identity; drop dead OAuth callback

- dashboard/settings/page.tsx now resolves the current user via getCurrentUser()
  (Identity JWT cookie) instead of the Supabase server client; display name comes
  from Identity's full_name.
- Remove src/app/auth/callback/route.ts — the Supabase OAuth code-exchange
  callback is unreferenced now that auth runs entirely on Identity.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
soroush.asadi
2026-05-30 06:10:21 +03:30
parent 2adaf57f10
commit 903306c7cf
2 changed files with 4 additions and 29 deletions
+4 -8
View File
@@ -4,9 +4,9 @@ import { SettingsBilling } from "@/components/dashboard/settings/SettingsBilling
import { SettingsNotifications } from "@/components/dashboard/settings/SettingsNotifications"; import { SettingsNotifications } from "@/components/dashboard/settings/SettingsNotifications";
import { SettingsProfile } from "@/components/dashboard/settings/SettingsProfile"; import { SettingsProfile } from "@/components/dashboard/settings/SettingsProfile";
import { SettingsSecurity } from "@/components/dashboard/settings/SettingsSecurity"; import { SettingsSecurity } from "@/components/dashboard/settings/SettingsSecurity";
import { getCurrentUser } from "@/lib/auth/session";
import { createPageMetadata } from "@/lib/metadata"; import { createPageMetadata } from "@/lib/metadata";
import { getUserProfile } from "@/lib/profiles"; import { getUserProfile } from "@/lib/profiles";
import { createClient } from "@/lib/supabase/server";
export const metadata: Metadata = createPageMetadata({ export const metadata: Metadata = createPageMetadata({
title: "Settings", title: "Settings",
@@ -17,16 +17,12 @@ export const metadata: Metadata = createPageMetadata({
export const dynamic = "force-dynamic"; export const dynamic = "force-dynamic";
export default async function DashboardSettingsPage() { export default async function DashboardSettingsPage() {
const supabase = await createClient(); // Auth is served by the V2 Identity service (JWT cookie), not Supabase.
const { const user = await getCurrentUser();
data: { user },
} = await supabase.auth.getUser();
const email = user?.email ?? ""; const email = user?.email ?? "";
const displayName = const displayName =
typeof user?.user_metadata?.full_name === "string" typeof user?.full_name === "string" ? user.full_name : null;
? user.user_metadata.full_name
: null;
const profile = user ? await getUserProfile(user.id) : null; const profile = user ? await getUserProfile(user.id) : null;
const plan = profile?.plan ?? "free"; const plan = profile?.plan ?? "free";
-21
View File
@@ -1,21 +0,0 @@
import { NextResponse } from "next/server";
import { isSupabaseConfigured } from "@/lib/supabase/config";
import { createClient } from "@/lib/supabase/server";
export async function GET(request: Request) {
const { searchParams, origin } = new URL(request.url);
const code = searchParams.get("code");
const next = searchParams.get("next") ?? "/dashboard";
if (code && isSupabaseConfigured()) {
const supabase = await createClient();
const { error } = await supabase.auth.exchangeCodeForSession(code);
if (!error) {
return NextResponse.redirect(`${origin}${next}`);
}
}
return NextResponse.redirect(`${origin}/auth?error=auth_callback_failed`);
}