Ошибка при сборке 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"

→ Ссылка