如何将参数从 URL 传递到机器对机器 JWT 的 auth0 挂钩或规则?

How to pass a parameter from a URL to an auth0 hook or rule for a machine-to-machine JWT?

我想向 auth0 为机器对机器身份验证生成的 JSON 网络令牌添加自定义声明。喜欢

color:blue

但我想使 blue 成为一个参数,我可以将我的请求传递给 auth0 以获取令牌。

我这样索取令牌:

POST https://mydomain.eu.auth0.com/oauth/token

带有请求正文

{
  "client_id":"myID",
  "client_secret":"mySecret",
  "audience" : "https://mydomain.eu.auth0.com/api/v2/",
  "grant_type" :"client_credentials"
}

我从 中了解到如何使用钩子或规则来添加固定声明,但我想添加一个类似

的变量
?color=blue

到我的请求 URL 或请求正文中,并从我的挂钩代码中访问它以作为声明添加。

请问可以吗?怎么样?

当您使用自定义规则处理授权请求时,您可以通过 context 函数参数的请求对象访问至少一部分请求属性。我尝试了一下,但不幸的是,请求对象的字段似乎仅限于原始请求的几个字段。

如果您的用户信息位于 Auth0 中,您可以查看将首选项写入 user's metadata by using the Auth0 metadata API。这很好用。但是您只能在用户登录后设置元数据,而不是之前。此外,您现在还必须处理两个不同的 Auth0 API 端点。