Auth0中的自定义API有什么优势?

时间:2019-06-18 06:57:23

标签: jwt single-page-application auth0 ktor

问题

我在理解有关auth0的一些基本知识时遇到了问题,可能有人可以帮助我。

在教程SPA + API中,TDLR的第一行内容是:

  

必须在Auth0信息中心中配置SPA和API

我不明白为什么我需要在Auth0上配置API。我的代码似乎可以正常工作,因此有人可以帮我理解我做错了什么吗,或者如果我实际上在仪表板上添加了自定义API有什么好处?

设置

  • SPA(反应)
  • Auth0
  • REST API(ktor)

我做什么

  • 在Auth0上创建SPA
  • 通过Auth0登录我的SPA以获取JWT(Google令牌)
  • 在我对REST API的调用中将JWT作为身份验证承载发送
  • REST API使用Auth0 URL mydomain.eu.auth0.com/.well-known/jwks.json与JWK提供程序一起验证JWT令牌。
  • 身份验证似乎有效

1 个答案:

答案 0 :(得分:2)

一个很好的问题,我假设您的身份验证请求中包含现在代表您的自定义API(Rest API)的受众参数。用oauth2术语,它称为资源服务器。每个资源服务器都可以具有许多权限,您可以在启动身份验证请求时将其包括在范围中。让我们退后一步,讨论令牌格式。 Auth0发行两种格式的令牌:

  • 不透明字符串:不使用自定义API时
  • JSON Web令牌(JWT):使用自定义API时

https://auth0.com/docs/tokens/reference/access-token/access-token-formats#how-does-all-this-affect-the-token-format-

如上所述,令牌格式取决于受众群体(自定义API)参数。因此,当身份验证请求包括访问者时,auth0发出具有所有必要许可的JWT令牌。然后,您需要先验证API服务器中的JWT令牌,然后再将资源返回给前端客户端。

为什么您需要在auth0中创建自定义API并定义权限应该很有意义。如果您未在auth0中创建自定义API,则无法知道令牌中需要哪种权限,这会产生错误(指定了无效的受众)