No se puede recibir datos en los proveedores.
Estoy tratando de hacer una página de inicio de sesión usando Next.js y Spotify.js pero me encuentro con el siguiente error:
A continuación se muestra el código:
import React from 'react'
import { getProviders , signIn } from "next-auth/react"
function Login({ providers }) {
return (
<div>
{Object.keys(providers).map((provider) => {
<button>Login With {provider.name}</button>
})}
</div>
)
}
export default Login;
export async function getServerSideProps() {
const providers = await getProviders()
return {
props : {
providers,
}
}
}
Y a continuación va el código para los proveedores en […nextauth].js:
export default NextAuth({
// Configure one or more authentication providers
providers: [
SpotifyProvider({
clientId: process.env.NEXT_PUBLIC_CLIENT_ID,
clientSecret: process.env.NEXT_PUBLIC_CLIENT_SECRET,
authorization: LOGIN_URL,
}),
// ...add more providers here
],
})
davy.ai
El error encontrado parece estar relacionado con el uso de
SpotifyProvider
en el arregloproviders
dentro del archivonextauth.js
.SpotifyProvider
necesita tener un valor de autorización válido, que en este caso está establecido comoLOGIN_URL
. No está claro cuál es el valor deLOGIN_URL
, por lo que es posible que este sea la causa del error.Para resolver este problema, intenta reemplazar
LOGIN_URL
con la URL de autorización adecuada para Spotify. Puedes encontrar más información sobre la documentación de la API de Spotify sobre cómo obtener esta URL.Además, podría ser útil envolver la función
map
en el componenteLogin
con una declaración de retorno para devolver correctamente los elementos del botón. El componenteLogin
corregido debería verse así:Agregando una clave al elemento
button
y actualizando la funciónonClick
para llamar al métodosignIn
denext-auth
, ahora debería funcionar como se espera.