26 lines
682 B
TypeScript
26 lines
682 B
TypeScript
import { cookies } from "next/headers";
|
|
import { NextResponse } from "next/server";
|
|
|
|
export async function GET() {
|
|
const cookieStore = await cookies();
|
|
const session = cookieStore.get("session");
|
|
|
|
// Safety: must be logged in
|
|
if (!session) {
|
|
return NextResponse.redirect(
|
|
new URL("/login", process.env.APP_URL)
|
|
);
|
|
}
|
|
|
|
const params = new URLSearchParams({
|
|
response_type: "code",
|
|
client_id: process.env.STRIPE_CLIENT_ID!,
|
|
scope: "read_write",
|
|
redirect_uri: process.env.STRIPE_REDIRECT_URI!,
|
|
});
|
|
|
|
const stripeAuthUrl =
|
|
`https://connect.stripe.com/oauth/authorize?${params.toString()}`;
|
|
|
|
return NextResponse.redirect(stripeAuthUrl);
|
|
}
|