import { User } from "@/types"; import { NextResponse } from "next/server"; import { headers } from "next/headers"; // UserResponse = type User & { token: string }; type UserResponse = User & { token: string }; export const isAuthenticated = async (): // req: NextRequest Promise | undefined> => { const authHeaders = await headers(); const token = authHeaders.get("Authorization"); if (!token) { return NextResponse.json( { ok: false, message: "Wrong castle fam :(", }, { status: 401, headers: { "Content-Type": "application/json", }, } ); } const user = await fetch("https://huggingface.co/api/whoami-v2", { headers: { Authorization: token, }, method: "GET", }) .then((res) => res.json()) .catch(() => { return NextResponse.json( { ok: false, message: "Invalid token", }, { status: 401, headers: { "Content-Type": "application/json", }, } ); }); if (!user || !user.id) { return NextResponse.json( { ok: false, message: "Invalid token", }, { status: 401, headers: { "Content-Type": "application/json", }, } ); } return { ...user, token: token.replace("Bearer ", ""), }; };