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可以做到这一点,谢谢!那太好了。欢迎