Я работаю над проектом, основанным на NextJs v13 и использующим Strapi v4 в качестве бэкэнда. У меня есть отдельный макет для сайта, входа в систему и панели управления. Я работал над разделом входа в систему и использовал NextAuth для аутентификации. Но когда я отправляю форму входа, она не распознает маршрут аутентификации и перенаправляет на маршрут http://localhost:3000/api/auth/error. Ошибка
GET http://localhost:3000/api/auth/error 404 (не найден)
Это структура папок моего проекта.

Это код отправки.
const onSubmit = async (e) => { е.preventDefault(); const result = await SignIn('credentials', { перенаправление: ложь, электронная почта: e.target.email.value, пароль: e.target.password.value, }); если (результат.ок) { router.replace('/'); возвращаться; } alert('Учетные данные недействительны'); }; Это код [...nextauth].j:
импортировать NextAuth из 'next-auth'; импортировать CredentialsProvider из «next-auth/providers/credentials»; импортировать { вход } из '../../../../services/auth'; экспортировать NextAuth по умолчанию({ провайдеры: [ CredentialsProvider({ name: 'Войти по электронной почте', реквизиты для входа: { электронная почта: { label: «Электронная почта», введите: «текст» }, пароль: { метка: «Пароль», введите: «пароль» }, }, асинхронная авторизация (учетные данные, требование) { если (учетные данные == null) вернуть ноль; пытаться { const { user, jwt } = ожидание входа в систему ({ электронная почта: учетные данные.email, пароль: учетные данные.пароль, }); return {...пользователь, jwt}; } поймать (ошибка) { // Ошибка входа в систему вернуть ноль; } }, }), ], обратные вызовы: { сеанс: асинхронный ({сеанс, токен }) => { session.id = token.id; session.jwt = token.jwt; вернуть Promise.resolve(сессия); }, jwt: async ({ токен, пользователь }) => { const isSignIn = пользователь? правда: ложь; если (isSignIn) { токен.id = user.id; token.jwt = user.jwt; } вернуть Promise.resolve(токен); }, }, }); А это код auth.js:
импортировать аксиомы из 'axios'; const StrapiUrl =process.env.NEXT_PUBLIC_STRAPI_API_URL; экспортировать асинхронную функцию SignIn({электронная почта, пароль }) { const res = await axios.post(`${strapiUrl}/api/auth/local`, { идентификатор: электронная почта, пароль, }); вернуть рез.данные; } Я много искал решения этой проблемы, но, к сожалению, не смог найти решения.
Мобильная версия