【问题标题】:Error using Auth0’s Node/Hapi Quickstart使用 Auth0 的 Node/Hapi 快速入门时出错
【发布时间】:2017-02-17 00:27:31
【问题描述】:

我已在 https://auth0.com/docs/quickstart/backend/hapi 下载了 Node/Hapi 快速入门,其中包含我预先填写的数据。

我能够运行节点服务器并访问/public 端点。当我尝试访问 /private 端点(通过 POSTMAN)时,出现以下错误:

{
  "statusCode": 401,
  "error": "Unauthorized",
  "message": "Missing authentication"
}

为了获取访问令牌,我使用以下负载向https://<My Account>.auth0.com/oauth/ro 发出请求:

{
    "client_id":   "<My Client ID>",
    "username":    "<My Username>",
    "password":    "<My Password>",
    "connection":  "Username-Password-Authentication",
    "grant_type":  "password",
    "scope":       "openid name email"
}

返回包含我的访问令牌的响应:

{
    "id_token": <Id Token>,
    "access_token": <Access Token>,
    "token_type": "bearer"
}

我现在尝试使用我的访问令牌在 Authorization 标头中传递 /private 端点,如下所示:

GET /private HTTP/1.1
Host: <My Machine Name>:8000
Authorization: Bearer <Access Token>
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: 87dd4307-2a1c-b36e-0377-129cf60b676d

返回以下错误:

{
    "statusCode": 400,
    "error": "Bad Request",
    "message": "Bad HTTP authentication header format"
}

我尝试了很多东西,但无法超越这一点。任何帮助将不胜感激。

环境规格:

  • 节点 v6.5.0
  • Npm v3.10.6
  • hapi: ^15.1.1
  • hapi-auth-jwt: ^4.0.0

谢谢, 哲那罗

【问题讨论】:

    标签: node.js hapijs auth0


    【解决方案1】:

    假设您正在完全按照问题中的描述进行操作,问题是您需要在调用/private 端点而不是access_token 时传递收到的id_token .

    这在您正在关注的快速入门的第 4 点中提到:

    您现在可以通过在请求中使用有效的 JWT id_token 提供 Authorization 标头来针对您的安全 API 发出请求。

    要更深入地了解整个 Auth0 身份验证系统中使用的不同类型的令牌,您应该阅读Tokens used by Auth0

    【讨论】:

    • 这解决了这个问题。我知道我在发布之前尝试过这个,但我认为我的服务器端代码还有另一个问题,这也是一个问题。谢谢。
    猜你喜欢
    • 2017-10-24
    • 2016-10-02
    • 2013-03-13
    • 2016-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-30
    • 2021-09-10
    相关资源
    最近更新 更多