You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure B2C自定义策略:如何将invite_token传入REST API请求体

解决inviteToken无法传入REST API请求体的配置方案

问题根源

你当前的配置中,LocalAccountSignUpWithLogonEmail技术配置的DisplayClaims里包含了inviteToken,这会导致页面渲染出inviteToken的输入框。若用户未在该输入框中填写内容(或清空),SelfAsserted属性提供器会将inviteToken声明的值覆盖为空,从而导致后续REST API调用时无法传递该参数。

修改步骤

1. 更新ClaimType定义(添加只读属性)

在你的ClaimType配置中,为inviteToken添加只读输入类型,确保该值无法被用户修改:

<ClaimType Id="inviteToken">
  <DataType>string</DataType>
  <UserInputType>Readonly</UserInputType>
</ClaimType>

2. 移除注册页面的inviteToken显示控件

修改LocalAccountSignUpWithLogonEmail的DisplayClaims,删除inviteToken对应的DisplayClaim项,避免页面渲染输入框导致值被覆盖:

<DisplayClaims>
  <!-- <DisplayClaim DisplayControlReferenceId="emailVerificationControl" /> -->
  <DisplayClaim ClaimTypeReferenceId="email" Required="true" />
  <DisplayClaim ClaimTypeReferenceId="newPassword" Required="true" />
  <DisplayClaim ClaimTypeReferenceId="reenterPassword" Required="true" />

  <!-- Optional claims, to be collected from the user -->
  <DisplayClaim ClaimTypeReferenceId="displayName" />
  <DisplayClaim ClaimTypeReferenceId="givenName" />
  <DisplayClaim ClaimTypeReferenceId="surName" />
  <!-- 移除此行:<DisplayClaim ClaimTypeReferenceId="inviteToken" /> -->
</DisplayClaims>

3. 保留必要的声明传递配置

确认以下配置已正确设置:

  • LocalAccountSignUpWithLogonEmail的InputClaims中,inviteToken的默认值配置正确:
    <InputClaim ClaimTypeReferenceId="inviteToken"
      DefaultValue="{OAUTH-KV:invite_token}"
      AlwaysUseDefaultValue="true" />
    
  • LocalAccountSignUpWithLogonEmail的OutputClaims中保留inviteToken,确保声明能传递到后续验证流程:
    <OutputClaim ClaimTypeReferenceId="inviteToken" />
    
  • REST-API-SIGNUP-VALIDATION的InputClaims中正确映射inviteToken:
    <InputClaim ClaimTypeReferenceId="inviteToken" PartnerClaimType="inviteToken" />
    

完成以上修改后,inviteToken会从URL查询参数中正确读取,并传递到REST API的POST请求体中。

内容的提问来源于stack exchange,提问作者Smith Dwayne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 16:50:56