Estoy implementando el inicio de sesión de API con node js y javascript. Estoy tratando de obtener un token, pero la consola dice Objeto: prototipo nulo como se muestra a continuación.
[Symbol(Response internals)]: { url: 'https://URL(sensitive information)', status: 200, statusText: 'OK', headers: Headers { [Symbol(map)]: [Object: null prototype] }, counter: 0 } }A continuación se muestra mi código.
export const startKakaoLogin = (req, res) => { const baseUrl = "https://kauth.kakao.com/oauth/authorize?"; const config = { client_id: process.env.KA_ID, redirect_uri: process.env.KA_RE, response_type: "code", prompt: "login", }; const params = new URLSearchParams(config).toString(); const finalUrl = `${baseUrl}&${params}`; return res.redirect(finalUrl); }; export const finishKakaoLogin = async (req, res) => { const baseUrl = "https://kauth.kakao.com/oauth/token"; const config = { grant_type: "authorization_code", client_id: process.env.KA_ID, redirect_uri: process.env.KA_RE, code: req.query.code, }; const params = new URLSearchParams(config).toString(); const finalUrl = `${baseUrl}&${params}`; const tokenRequest = await fetch(finalUrl, { method: "POST", headers: { Accept: "application/x-www-form-urlencoded;charset=utf-8", }, body: finalUrl, }); console.log(tokenRequest); };Además, en la referencia, se usó 'curl', pero usé 'fetch', ¿hice algo mal?
POST /oauth/token HTTP/1.1 Host: kauth.kakao.com Content-type: application/x-www-form-urlencoded;charset=utf-8 curl -v -X POST "https://kauth.kakao.com/oauth/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=authorization_code" \ -d "client_id=${REST_API_KEY}" \ --data-urlencode "redirect_uri=${REDIRECT_URI}" \ -d "code=${AUTHORIZE_CODE}"¿Qué espera obtener del punto final? Solo está registrando el objeto Response en este momento y está viendo una representación de sus componentes internos.
Para obtener, por ejemplo, el texto del cuerpo de la respuesta, también deberá analizarlo, aquí con Response#text() :
const text = await tokenRequest.text(); console.log(text); Si está buscando JSON, use Response#json() .
const data = await tokenRequest.json(); console.log(data); Sin embargo, asegúrese de verificar que el código de error de la respuesta sea lo que espera, con, por ejemplo, tokenRequest.ok .