Estoy tratando de obtener un código de concesión y cada vez que hago una solicitud con mi ID de cliente y secreto de cliente respectivos, aparece un error de respuesta 400 y se ejecuta la instrucción catch:
Details: invalid_grant Invalid redirect URI
Desde mi perspectiva es como si
Algunas publicaciones dicen que el URI de redirección tiene que ser exactamente el mismo en el panel del desarrollador y en el encabezado de la solicitud, pero da exactamente el mismo resultado. Aquí está mi archivo node.js actual:
const express = require("express"); const cors = require("cors"); const bodyParser = require("body-parser"); const SpotifyWebApi = require("spotify-web-api-node"); const app = express(); app.use(cors()); app.use(bodyParser.json()); app.post("/login", (req, res) => { const code = req.body.code; const spotifyApi = new SpotifyWebApi({ redirectUri: "http://localhost:3000/", clientId: "someCode", clientSecret: "someCode", }); spotifyApi .authorizationCodeGrant(code) .then((data) => { res.json({ accessToken: data.body.access_token, refreshToken: data.body.refresh_token, expiresIn: data.body.expires_in, }); }) .catch((err) => { console.log(err) res.sendStatus(400); }); }); app.listen(3001);
Este es el gancho personalizado que hace la solicitud:
import { useEffect, useState } from "react"; import axios from "axios"; export default function useAuth(code) { const [accessToken, setAccessToken] = useState(); const [refreshToken, setRefreshToken] = useState(); const [expiresInToken, setExpiresIn] = useState(); useEffect(() => { axios .post("http://localhost:3001/login", { code, }) .then((res) => { window.history.pushState({}, null, "/"); console.log(res.data); }) .catch(() => { window.location = "/"; }); }, [code]); }