【发布时间】:2018-01-26 12:03:12
【问题描述】:
我编写了一个简单的 React 应用程序,遵循一个稍微过时的教程的说明,该教程旨在在侧边栏中显示联系人列表,并在索引组件中显示个人联系人数据,但前提是您已通过身份验证通过登录到 Auth0 组件并将 JSON Web Token 保存在本地存储中。我已确认我已登录并拥有令牌。到目前为止一切正常。
当我单击边栏中的联系人以查看该联系人的数据时,问题就开始了,这些数据来自使用 Express 设置的非常基本的 API。我一直在使用 Postman 进行故障排除,因为我从应用程序中得到的唯一错误是“401:未经授权”
当我到达端点时,使用“Bearer [JWT_VALUE_HERE]”提供授权标头,邮递员以“UnauthorizedError:无效算法”响应
完整输出
UnauthorizedError: 无效算法
在 /Users/Arkham/Documents/Web/eldrac/react-auth-server/node_modules/express-jwt/lib/index.js:102:22
在 /Users/Arkham/Documents/Web/eldrac/react-auth-server/node_modules/jsonwebtoken/verify.js:27:18
在 _combinedTickCallback (internal/process/next_tick.js:95:7)
在 process._tickCallback (internal/process/next_tick.js:161:9)
我进行了一些谷歌搜索并调整了我的 Auth0 客户端设置,特别是算法设置,但无论我将其设置为什么(我的选项是 RS256 和 HS256),它似乎都没有什么不同。我很想克服这个问题。
我使用 Superagent 提出请求
getContact: (url) => {
return new Promise((resolve, reject) => {
request
.get(url)
.set('Authorization', 'Bearer ' + AuthStore.getJwt())
.end((err, response) => {
if (err) reject(err);
resolve(JSON.parse(response.text));
})
});
}
这似乎有效。我已经确认 url 是正确的,并且 AuthStore.getJwt() 提供了正确的参数。
【问题讨论】:
-
Bryan - 你看到我的回答了吗 - 任何 cmets?
标签: reactjs express jwt superagent express-jwt