我正在实施 B2C 自定义策略的 REST API 调用,但有一些疑问。
第一个是否可以拥有包含对象集合的输出声明?例如,REST API 响应有一个对象集合“prop2”。
{
"prop1": "586ee92e-d090-415f-a874-b3999243c6f3",
"prop2": [
{
"prop2_1": "a41e092c-460e-41cf-9c62-b75119a85019",
"prop2_2": "testA"
}
]
}
根据文档,有一种方法可以将对象集合映射到字符串集合(数据类型),但此选项不适合我们。
我试图将对象集合映射到字符串集合 - 它有效,但 JWT 令牌包含“转义”字符( ).
{
"prop1": "586ee92e-d090-415f-a874-b3999243c6f3",
"prop2": [
"{\r\n \"prop2_1\": \"a41e092c-460e-41cf-9c62-b75119a85019\",\r\n \"prop2_2\": \"test\" }"
]
}
第二件事 - 是否可以删除“转义”字符( )来自集合的每个字符串?
我也有类似的情况。您可以将对象集合作为 JSON 格式的长字符串传递。然后,您的接收应用程序可以解析 JSON 并将其转换为真正的集合。
因此您可以将整个对象存储为字符串:
"{\"prop1\":\"VALUE\","prop2":[{\"prop2_1\":\"VALUE\",\"prop2_2\":\"testA\"}]}"
再次强调,您在该声明的自定义政策中的任何地方都没有使用真正的“对象”。只需将其视为传递给客户端应用程序的字符串即可。让客户端应用程序负责将字符串解析为 JSON 对象。
在这种情况下,您也可以只允许您的客户端应用程序删除“ “字符。
这一切都假设您的 B2C 自定义策略仅用作传递机制。相反,如果您要对对象进行声明转换,则需要更多的复杂性。但是,根据您问题中提供的详细信息无法确定这一点。