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

如何将参数从URL传递到机器对机器JWT的auth0钩子或规则?,jwt,auth0,Jwt,Auth0,我想向auth0生成的用于机器到机器身份验证的JSON web令牌添加一个自定义声明。像 color:blue 但是我想使blue成为一个参数,我可以将其与令牌的auth0请求一起传递 我要这样的代币: POST https://mydomain.eu.auth0.com/oauth/token 请求机构 { "client_id":"myID", "client_secret":"mySecret",

我想向auth0生成的用于机器到机器身份验证的JSON web令牌添加一个自定义声明。像

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或请求正文,并将其作为声明添加到我的钩子代码中


请问这可能吗?如何处理?

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


如果用户信息驻留在Auth0中,则可以通过使用将首选项写入来签出。这很有效。但您只能在用户登录后设置元数据,而不能在登录前设置元数据。另外,您现在还必须处理两个不同的Auth0 API端点。

非常感谢-至少有人有了主意!这是一个非常有用的建议。我不确定它是否可以工作,但是
context.request.query
似乎是请求中的查询字符串,所以我们将尝试一下。不过,用户的元数据并不有用。信息必须与请求URL一起输入。谢谢