Ошибка при сборке next.js: Route does not match the required types
Имея код в файле "app/api/auth/[...nextauth]/route.ts" согласно документации next-auth.js
import { NextApiRequest, NextApiResponse } from 'next';
import NextAuth from 'next-auth';
import { authOptions } from 'utils/authOptions';
export default async function auth(req: NextApiRequest, res: NextApiResponse) {
console.log(req.headers['x-forwarded-host'])
req.headers['x-forwarded-host'] = process.env.NEXTAUTH_URL
return await NextAuth(req, res, authOptions)
}
И в файле "utils/authOptions.ts"
import { NextAuthOptions } from 'next-auth';
import KeycloakProvider from 'next-auth/providers/keycloak';
declare module 'next-auth' {
interface Session {
id_token?: string | unknown;
}
}
const keycloakConfig = {
clientId: process.env.KEYCLOAK_CLIENT_ID!,
clientSecret: process.env.KEYCLOAK_CLIENT_SECRET!,
issuer: process.env.KEYCLOAK_ISSUER!
};
export const authOptions: NextAuthOptions = {
providers: [KeycloakProvider(keycloakConfig)],
callbacks: {
...
}
};
Я получаю ошибку
Type error: Route "src/app/api/auth/[...nextauth]/route.ts" does not match the required types of a Next.js Route. "auth" is not a valid Route export field.
Однако если я использую такой код, то он рабочий
import NextAuth from 'next-auth';
import { authOptions } from 'utils/authOptions';
const handler = NextAuth(authOptions)
export { handler as GET, handler as POST }
Как исправить данную ситуацию, для решения с вставкой 'x-forwarded-host' ?
Ответы (1 шт):
Автор решения: ProSardar
→ Ссылка
Проблема была в том, что нужно было НЕ в "app/api/auth/[...nextauth]/route.ts" делать это, а по пути "pages/api/auth/[...nextauth]/route.ts"