Javascript 节点post请求正在获取未经授权的服务器状态,但客户端获取api未被授权

Javascript 节点post请求正在获取未经授权的服务器状态,但客户端获取api未被授权,javascript,node.js,express,post,Javascript,Node.js,Express,Post,在我的前端执行以下提取请求时,我将获得所需的类型和id值 export const getUserProfile = () => { return ( fetch( "https://api.spotify.com/v1/me", { headers: {"Authorization": "Bearer " + user_id} }) .then(response => { return response.json()

在我的前端执行以下提取请求时,我将获得所需的
类型
id

export const getUserProfile = () => {
  return (
    fetch(
      "https://api.spotify.com/v1/me", {
      headers: {"Authorization": "Bearer " + user_id}
    })
    .then(response => {
      return response.json()
    })
    .then(data => {
      console.log(data.type)
      console.log(data.id)
    })
  )
}
知道您不能在节点中使用fetchapi,我使用
npm安装请求
包获取节点服务器上的数据

request.post(authOptions, function(error, response, body) {
  var access_token = body.access_token
  let postInfo = {
    url: 'https://api.spotify.com/v1/me',
    headers: {
      "Authoriztion": "Bearer " + access_token
    },
    json: true
  }
  request.post(postInfo, function(error, response, body) {
    const route = body.type
    const current_user_id = body.id
    console.log(body)
    let uri = process.env.FRONTEND_URI || `http://localhost:3000/${route}/${current_user_id}`
    res.redirect(uri + '?access_token=' + access_token)
  })
})
这样做的目的是在调用
res.redirect
时将客户端发送到用户的主页。但是,当客户端被重定向时,url是
http://localhost:3000/undefined/undefined?accesss_token={some token}
当查看值未定义的原因时,我
console.log(body)
得到

{
  error: { 
    status: 401,
    message: 'No token provided'
  }
}
但是我可以在记录响应时看到包含了令牌

\u header:'POST/v1/me HTTP/1.1\r\n授权:Bearer{some token}=\r\nhost:api.spotify.com\r\n接受:application/json\r\n内容长度:0\r\n连接:close\r\n\r\n'

我可以理解为什么我的值未定义,但为什么我在节点中获得未经授权的状态,而不是在使用FetchAPI的客户端上?我还注意到url
access\u令牌
与服务器记录的令牌不匹配

以下是我正在使用的文档:


Github文件:

如果您在服务器代码中使用
节点获取
,您的API与
获取
类似,这只是猜测,而不是
(新缓冲区(访问令牌).toString('base64'))
只需尝试
访问\u令牌即可
-即不要使用base64it@Robbie在执行此操作时,我注意到服务器记录的是与客户端url相同的
access\u令牌。不过我仍然得到了未经授权的401。听起来base64不是必需的-我不知道为什么它仍然是401-您是否确保
承载
和访问令牌之间仍然有一个空格字符?消息是否仍然
未提供令牌
?还是变了?@Robbie是的,有一个空格字符。如果您想查看并查看是否存在其他问题,我将使用显示整个文件的github页面更新我的问题。看起来像是拼写错误。您将
授权
拼写错误为
授权
-我在github中对提交进行了评论-在您的SO帖子中,您拼写正确。