File size: 602 Bytes
654b283
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import { NextRequest, NextResponse } from "next/server";

import { createOAuthAuthorizationUrl } from "@/lib/huggingface";
import { createOpaqueToken, createPkcePair, setOAuthCookies } from "@/lib/session";

export const runtime = "nodejs";

export async function GET(request: NextRequest) {
  const state = createOpaqueToken(24);
  const { verifier, challenge } = createPkcePair();

  const response = NextResponse.redirect(
    createOAuthAuthorizationUrl({
      state,
      codeChallenge: challenge,
      request,
    }),
  );

  setOAuthCookies(response, state, verifier);

  return response;
}