Estoy tratando de autenticar la API de Spotify utilizando el flujo de credenciales del cliente OAuth2.0. En general, el flujo es el siguiente:
const open = require('open') responseType = 'token' clientID = 'CLIENT_ID' redirectURI = 'http%3A%2F%2Flocalhost%3A8888%2Fcallback' scope = 'streaming+user-read-email+user-modify-playback-state+user-read-private+user-library-read+user-library-modify+user-read-currently-playing' contentType = 'application/json' params = { 'response_type' : responseType, 'client_id' : clientID, 'redirect_uri' : redirectURI, 'scope' : scope } headers = { 'Content-Type' : contentType } // send user to browser to grant data permissions open(`https://accounts.spotify.com/en/authorize?response_type=${responseType}&client_id=${clientID}&redirect_uri=${redirectURI}&scope=${scope}&show_dialog=true`)-- esta parte está bien, no tengo problemas para enviar al usuario al navegador para iniciar sesión y otorgar permiso a mi aplicación y el servidor Express que tengo escuchando en el puerto 8888 me avisa cuando la devolución de llamada suena con la respuesta
http://localhost:8888/callback#authentication_token=2iais820zg...fh9IHkLDI&timeout=3600 -- esto es con lo que tengo problemas.así es como estoy manejando la devolución de llamada api en el punto final / devolución de llamada de mi servidor Express:
app.get('/callback', function (req, res) { console.log('someone made a request!\n') /// //// console.log(req + '\n') console.log(res + '\n') /// //// console.log(req.body) res.json(req.body) res.send('GET request to callback endpoint took you here') res.end() })pero la salida de la consola es la siguiente:
> server is listening on port 8888 ... someone made a request! [object Object] [object Object] {}donde todo está vacío.
¿Cómo puedo acceder a los parámetros de URL de la solicitud GET de devolución de llamada? Intenté cambiar el manejo de GET a POST porque la gente me dijo que una solicitud GET no contiene parámetros, pero la devolución de llamada no puede encontrar el punto final (bc no está haciendo una solicitud POST ...)
debe colocar los parámetros en el cuerpo de la solicitud, no en el encabezado, como mencionó, para permitirle usar req.body sin problemas