mirror of
https://github.com/dograh-hq/dograh.git
synced 2026-07-13 11:22:14 +02:00
32 lines
1.6 KiB
TypeScript
32 lines
1.6 KiB
TypeScript
import { redirect } from "next/navigation";
|
|
|
|
import { getServerAuthProvider, getServerUser } from "@/lib/auth/server";
|
|
import logger from '@/lib/logger';
|
|
import { getRedirectUrl } from "@/lib/utils";
|
|
|
|
export const dynamic = 'force-dynamic';
|
|
|
|
export default async function AfterSignInPage() {
|
|
logger.debug('[AfterSignInPage] Starting after-sign-in page');
|
|
const authProvider = getServerAuthProvider();
|
|
logger.debug('[AfterSignInPage] Auth provider:', authProvider);
|
|
logger.debug('[AfterSignInPage] Getting server user...');
|
|
const user = await getServerUser();
|
|
logger.debug('[AfterSignInPage] Got user:', { hasUser: !!user, userId: user?.id });
|
|
|
|
if (authProvider === 'stack' && user && 'getAuthJson' in user) {
|
|
logger.debug('[AfterSignInPage] Stack user detected, getting auth token...');
|
|
const token = await user.getAuthJson();
|
|
logger.debug('[AfterSignInPage] Got token:', { hasToken: !!token?.accessToken });
|
|
const permissions = 'listPermissions' in user && 'selectedTeam' in user
|
|
? await user.listPermissions(user.selectedTeam!) ?? []
|
|
: [];
|
|
logger.debug('[AfterSignInPage] Got permissions:', { count: permissions.length });
|
|
const redirectUrl = await getRedirectUrl(token?.accessToken ?? "", permissions);
|
|
logger.debug('[AfterSignInPage] Redirecting to:', redirectUrl);
|
|
redirect(redirectUrl);
|
|
}
|
|
// For local provider or if user is not available, redirect to create-workflow
|
|
logger.debug('[AfterSignInPage] Fallback redirect to /create-workflow');
|
|
redirect('/create-workflow');
|
|
}
|