【问题标题】:The server responded with a status of 401 (Unauthorized) [Strapi]服务器响应状态为 401(未授权)[Strapi]
【发布时间】:2018-08-02 12:41:57
【问题描述】:

我正在尝试使用 Nuxt.js(根本没有修改)将其连接到 Strapi api 构建一个应用程序,我对此完全陌生。我按照 Strapi 博客上的教程将 Strapi api 部署到 Heroku 并且 Nuxt.js 应用程序在本地运行。两个实例各自运行良好。

但现在当我尝试获取请求(见下文)时,我得到了 401(未经授权)响应。

axios.get(
    'url',
    {headers: {
      Authorization: 'Bearer ${token}'}
    }
)

我尝试创建不同的用户并更改权限。但我总是得到:

“状态代码”:401, “错误”:“未经授权”, "message": "无效的令牌。"

我不确定我做错了什么。我以为 Strapi 用户面板中的密码是 JWT。我弄错了吗?我尝试搜索文档,stackoverflow,......但无法解决我的问题。感谢您的帮助!

【问题讨论】:

  • 你检查过关于令牌的请求头吗?
  • 我刚刚做了,因为之前我不知道那是什么。不过我看不出有什么不对。我在代码中的令牌在那里并且主机是正确的。我不知道还有什么问题。

标签: jwt nuxt.js strapi


【解决方案1】:

Based on the documentation,您需要登录 (POST /auth/local) 以检索 JWT 并在 Authorization 标头中使用它来请求资源。

【讨论】:

  • 谢谢,我不知道 POST 是必需的。我会试试的!
  • 经过大量尝试(使用邮递员、本地和 Heroku 的不同身份验证方法,更新了 Strapi,创建了新的 api,新用户,不同的权限..)我仍然没有成功。发帖到localhost:1337/auth/local/register 得到“statusCode”:400、“error”:“Bad Request”、“message”:“请提供您的密码。”使用基本身份验证发布到localhost:1337/auth/local 返回“statusCode”:401、“error”:“Unauthorized”、“message”:“Invalid token”。我可能对整个过程缺乏了解。有没有其他方式获取JWT?
  • 您确定路线是开放的吗?转到仪表板 > 用户和权限 > 角色 > 公共并确保选中 Auth.callback 操作。
【解决方案2】:

您需要使用标识符, 不是用户名或电子邮件

https://strapi.io/documentation/developer-docs/latest/guides/auth-request.html#setup

const { data } = await axios.post('http://localhost:1337/auth/local', {
  identifier: 'reader@strapi.io',
  password: 'strapi',
});

【讨论】:

  • 感谢您的回答。我的问题是前一段时间的,我没有这个项目了,所以我不能确定你的答案是否解决了这个问题。但是是的,现在您需要使用标识符而不是用户名或电子邮件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-29
  • 2014-11-16
  • 1970-01-01
  • 1970-01-01
  • 2020-11-19
  • 2020-09-01
  • 2022-12-13
相关资源
最近更新 更多