【问题标题】:Auth0 Calling APIAuth0 调用 API
【发布时间】:2019-12-11 10:20:38
【问题描述】:

有人可以从Auth0 API快速入门中帮助理解以下代码sn-p

curl --request POST \
  --url https://polarcrm.auth0.com/oauth/token \
  --header 'content-type: application/json' \
  --data '{"client_id":"7Sxxxxxxx","client_secret":"J-_Xxxf5gS0lHQnxxxxxx","audience":"https://api.polarcrm.com","grant_type":"client_credentials"}'

上面的调用是成功的,它为我提供了一个 Access_Token 使用该令牌我可以调用 API,一切正常。

但这对我来说根本没有意义。 我有一个在我的 SPA 应用程序上经过身份验证的用户。 Auth0 已经知道谁是用户并且拥有所有用户信息,包括他的访问令牌和 id_token。 但是现在当该用户调用 API 时,API 对用户一无所知。上面 sn -p 中生成的访问令牌。它的有效载荷中只有以下数据:

{
  "iss": "https://polarcrm.auth0.com/",
  "sub": "7Sxxxxxx@clients",
  "aud": "https://api.polarcrm.com",
  "iat": 1564769606,
  "exp": 1564856006,
  "azp": "7Sxxxxxx",
  "gty": "client-credentials"
}

如果我的 API 对调用它的人一无所知,那么该令牌的用途是什么。 API 如何返回用户特定的数据?

如何将用户信息传递给 API?

当发送不同的令牌(来自 ASP.NET Core 身份验证)或来自 SPA 的 id_token(它们包含用户信息)时,API 调用失败并出现未经授权的错误。

【问题讨论】:

    标签: authentication oauth-2.0 authorization auth0


    【解决方案1】:

    使用客户端凭据流时,没有用户上下文。对于 SPA,将授权代码流与 pkce 一起使用。这将返回一个包含用户 ID 的令牌。

    这有点棘手,所以如果它有帮助,这里是消息的样子:https://authguidance.com/2017/09/26/basicspa-oauthworkflow/

    如果需要,很乐意回答后续问题..

    【讨论】:

    猜你喜欢
    • 2021-01-01
    • 2021-06-18
    • 1970-01-01
    • 1970-01-01
    • 2022-06-11
    • 2020-03-03
    • 2016-12-21
    • 2021-12-04
    • 2017-02-13
    相关资源
    最近更新 更多