curl 我试图从API登录中获取令牌,但得到的是Object null原型

6l7fqoea  于 10个月前  发布在  其他
关注(0)|答案(1)|浏览(111)

我正在使用node js和JavaScript实现API登录。我试图获取令牌,但控制台说:
Object:null prototype如下所示。

[Symbol(Response internals)]: {
    url: 'https://URL(sensitive information)',
    status: 200,
    statusText: 'OK',
    headers: Headers { [Symbol(map)]: [Object: null prototype] },
    counter: 0
  }
}

字符串
下面是我的代码。

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);
};


另外,在参考文献中,使用了'curl',但我使用了'fetch',我做错了什么吗?

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}"

trnvg8h3

trnvg8h31#

您希望从端点获得什么?您现在只是记录Response object,并看到其内部的表示。
例如,要从响应正文中获取文本,您也需要解析它,这里使用Response#text()

const text = await tokenRequest.text();
console.log(text);

字符串
如果你正在寻找JSON,那么使用Response#json()

const data = await tokenRequest.json();
console.log(data);


但是,一定要检查响应的错误代码是否是您所期望的,例如tokenRequest.ok

相关问题