使用 B2C 自定义策略中的对象集合映射 REST API 响应

问题描述 投票:0回答:1

我正在实施 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 azure-active-directory azure-ad-b2c
1个回答
0
投票

我也有类似的情况。您可以将对象集合作为 JSON 格式的长字符串传递。然后,您的接收应用程序可以解析 JSON 并将其转换为真正的集合。

因此您可以将整个对象存储为字符串:

"{\"prop1\":\"VALUE\","prop2":[{\"prop2_1\":\"VALUE\",\"prop2_2\":\"testA\"}]}"

再次强调,您在该声明的自定义政策中的任何地方都没有使用真正的“对象”。只需将其视为传递给客户端应用程序的字符串即可。让客户端应用程序负责将字符串解析为 JSON 对象。

在这种情况下,您也可以只允许您的客户端应用程序删除“ “字符。

这一切都假设您的 B2C 自定义策略仅用作传递机制。相反,如果您要对对象进行声明转换,则需要更多的复杂性。但是,根据您问题中提供的详细信息无法确定这一点。

© www.soinside.com 2019 - 2024. All rights reserved.