Javascript 缺少/api/v2/users/{id}的身份验证Auth0

Javascript 缺少/api/v2/users/{id}的身份验证Auth0,javascript,axios,auth0,Javascript,Axios,Auth0,我通过点击端点/oauth/token获得了令牌,并在邮递员上通过如下标题将其传递给/api/v2/users/{id} {Authorization: `Bearer ${token}`} 在《邮递员》上,它工作得很好,并且还给了我用户。然而,当我在我的应用程序中这样做时,我得到了一个401错误。我正在使用axios并像这样传递令牌 return new Promise((resolve, reject) => { axios .post('https://taus

我通过点击端点
/oauth/token
获得了令牌,并在邮递员上通过如下标题将其传递给
/api/v2/users/{id}

{Authorization: `Bearer ${token}`}
在《邮递员》上,它工作得很好,并且还给了我用户。然而,当我在我的应用程序中这样做时,我得到了一个401错误。我正在使用axios并像这样传递令牌

return new Promise((resolve, reject) => {
    axios
      .post('https://taustin.auth0.com/oauth/token', body, headers)
      .then(res => {
        resolve(res.data.access_token);
      })
      .catch(err => {
        reject(err);
      });
  });
上面是generateToken函数

generateToken()
          .then(token => {
            const headers = { Authorization: `Bearer ${token}` };
            console.log(token); //token is valid here
            axios
              .get(
                `https://taustin.auth0.com/api/v2/users/${profile.sub}`,
                headers
              )
              .then(res => {
                console.log(res);
              });
          })

在catch块中,我得到401unauth错误和消息。我不确定我在做什么不同于邮递员和我的应用程序,但我做错了什么。

你没有像你应该做的那样传递标题

你应该这样做:

const headers = { Authorization: `Bearer ${token}` };
axios
 .get(
   `https://taustin.auth0.com/api/v2/users/${profile.sub}`,
   headers: headers
 ).then().catch()
或者像这样试试

axios
 .get(
   `https://taustin.auth0.com/api/v2/users/${profile.sub}`,
   headers: {`Authorization: `Bearer ${token}`}
 ).then().catch()

希望这些信息能帮助您,如果您还需要帮助,请回复。

如果您不确定是否正确安装了Axios,请查看(几个月前写的,但应该仍然相关)

如果您的问题不在于如何处理Axios请求,而在于其他问题,请检查访问令牌。例如,实际使用应用程序中使用的访问令牌,并通过邮递员尝试相同的访问令牌。如果您的访问令牌不是不透明的,而是JWT访问令牌,那么请检查
受众
值。它应该符合
https://taustin.auth0.com/userinfo/


最后,如果postman正在工作,您还可以尝试生成代码片段选项,并使用
request
(node.js)导出工作示例。然后,如果这样做有效,请沿相同的线修改为Axios。请随时在下面的评论中发布问题

其余的请求头是否相同?内容类型、接受、可能是引用者和来源?您能否显示1)获取令牌2)传递令牌的整个流程?在这两者之间可能有某种东西导致了issues@GaborLengyel是的,标题是相同的。猎人编辑将被删除made@TaylorAustin尝试用对象文字包装标题,我相信所有GET选项都必须作为单个对象传递:
axios.GET(URL,{headers})
我完全忘记了axios使用GET可以做到这一点,谢谢!那太好了。欢迎