Files
login/app/authorize/page.tsx
2026-01-21 06:40:53 +01:00

44 lines
1.2 KiB
TypeScript

import * as React from "react";
import { redirect } from "next/navigation";
import { cookies } from "next/headers";
import { AuthorizeContainer } from "@/components/core/authorize";
export interface AuthorizeParams {
client_id?: string,
response_type?: string,
redirect_uri?: string,
scope?: string,
state?: string,
}
export default async function AuthorizePage({ searchParams }: { searchParams: Promise<AuthorizeParams> }) {
const params = await searchParams;
const cookieStore = await cookies();
const token = cookieStore.get("token");
const queryString = new URLSearchParams(
Object.entries(params).filter(([, v]) => v !== undefined) as [string, string][]
).toString();
if (!token) {
redirect(`/?returnTo=/authorize?${queryString}`);
}
return (
<div className="flex justify-center items-center h-screen">
<AuthorizeContainer
applicationName="SecNex"
applicationUrl="https://secnex.io"
client_id={params.client_id || ""}
redirect_uri={params.redirect_uri || ""}
response_type={params.response_type || "code"}
scope={params.scope || "profile email"}
returnTo={`/authorize?${queryString}`}
/>
</div>
)
}