【发布时间】:2021-04-08 22:02:26
【问题描述】:
我有一个授权服务器,它很高兴根据需要返回各种“开箱即用”和自定义声明,这很棒。
后端(DGraph GraphQL 托管服务器 https://slash.dgraph.io/)需要一个“命名空间”用于我希望它使用的声明,但我的令牌中的所有声明都位于有效负载的根目录中。
我来自 Okta 的示例 JWT 有效负载是:
{
"sub": "xxxxxxxxxxxxxxxxxxx",
"ver": 1,
"iss": "https://abc-1234567.okta.com/oauth2/default",
"aud": "xxxxxxxxxxxxxxxxxxx",
"iat": 1609590699,
"exp": 1609594299,
"jti": "ID.xxxxxxxxxxxxxxxxxxx",
"amr": [
"pwd"
],
"idp": "xxxxxxxxxxxxxxxxxxx",
"nonce": "nonce",
"auth_time": 1000,
"CustomClaim1": "xxxxxxxxxxxxxxxxxxx",
"CustomClaim2": "xxxxxxxxxxxxxxxxxxx"
}
DGraph 想要的是……
{
"sub": "xxxxxxxxxxxxxxxxxxx",
"ver": 1,
"iss": "https://abc-1234567.okta.com/oauth2/default",
"aud": "xxxxxxxxxxxxxxxxxxx",
"iat": 1609590699,
"exp": 1609594299,
"jti": "ID.xxxxxxxxxxxxxxxxxxx",
"amr": [
"pwd"
],
"idp": "xxxxxxxxxxxxxxxxxxx",
"nonce": "nonce",
"auth_time": 1000,
"Namespace": {
"CustomClaim1": "xxxxxxxxxxxxxxxxxxx",
"CustomClaim2": "xxxxxxxxxxxxxxxxxxx"
}
}
我在写这篇文章时注意到地址范围创建了一个输出,其中实际上有一个带有声明的命名空间,这就是我所追求的
"address": {
"street_address": "My House",
"locality": "My Town",
"region": "My County",
"postal_code": "My Postcode"
}"
如何做到这一点?!?!
【问题讨论】: