Obtuve 500 errores de servidor interno para mi próxima autenticación.
Implementé todo de acuerdo con los documentos de Next Auth.
import NextAuth from "next-auth"; import CredentialsProvider from "next-auth/providers/credentials"; import axios from "axios"; import { API_URL } from "./../../../helpers/api/mutations"; const options = { providers: [ CredentialsProvider({ name: "Credentials",La API funciona bien en un componente de reacción separado, pero falla solo en Next Auth.
async authorize(credentials) { const user = axios({ url: API_URL, method: "post", data: { query: `mutation($mobileNumber:String,$mobileCountryCode:String,$otp:Int){ verifyPhoneOTP( mobileNumber: $mobileNumber, mobileCountryCode: $mobileCountryCode, otp:$otp ) {accessToken expiresAt} }`, variables: { mobileNumber: credentials.mobile, mobileCountryCode: credentials.email, otp: credentials.otpFormatt, }, }, validateStatus: (status) => { if (status == 500) { console.log(status, "status axios log"); console.log(credentials, "credentials log"); return true; } }, headers: { "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36", Accept: "application/json; charset=UTF-8", }, }) .catch((error) => { console.log(error.response.data, "axios fail calls"); }) .then((result) => {Actualmente puedo ver que este registro de consola "llamadas axios" se muestra correctamente en el terminal, pero no se devuelven los tokens y las sesiones.
console.log(result.data, "axios calls"); console.log(credentials, "creds"); return result.data.data }); if (user) { return user; } else { return null; } }, }), ], }; const callbacks = { async jwt(token, user) { if (user) { token.accessToken = user.token; } return token; }, secret:process.env.SECRET, async session(session, token) { session.accessToken = token.accessToken; return session; }, }; export default (req, res) => NextAuth(req, res, options);El error 500 significa error del servidor. Verifique su servidor API si está en ejecución o detenido. El error 500 aquí no tiene nada que ver con nextjs, se trata del servidor back-end.