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

Azure B2C自定义策略:JWT过期校验及用户提示方案问询

处理Azure B2C自定义策略中JWT令牌过期的提示方案

当你配置的id_token_hint令牌过期时,Azure B2C默认只会返回错误,不会主动引导用户。你可以通过以下几种方式实现友好的过期提示:

1. 直接在验证配置中添加自定义错误提示

在负责验证id_token_hint的技术配置文件里,添加错误处理规则,将令牌过期的错误映射为用户能看懂的提示:

<TechnicalProfile Id="IdTokenHint_Validate">
  <DisplayName>ID Token Hint Validation</DisplayName>
  <Protocol Name="None" />
  <Metadata>
    <Item Key="METADATA">https://你的租户域名.b2clogin.com/你的租户域名.onmicrosoft.com/v2.0/.well-known/openid-configuration</Item>
    <Item Key="validationMode">IssuerAndToken</Item>
  </Metadata>
  <CryptographicKeys>
    <Key Id="issuer_secret" StorageReferenceId="B2C_1A_IdTokenHintKey" />
  </CryptographicKeys>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
  </OutputClaims>
  <ErrorHandling>
    <ErrorResponse>
      <ErrorCode>id_token_expired</ErrorCode>
      <UserMessage>你的身份令牌已过期,请重新生成新令牌后再继续注册。</UserMessage>
    </ErrorResponse>
  </ErrorHandling>
</TechnicalProfile>

配置后,当令牌过期时,用户会直接看到这条自定义提示。

2. 配置自定义错误页面强化提示

如果需要更美观的提示页面,可在Azure B2C租户后台的用户体验 > 自定义页面中上传自定义错误页面HTML,根据错误代码id_token_expired渲染专属提示,比如添加按钮引导用户跳转回令牌生成流程。

3. 在用户旅程中添加分支判断

你还可以在用户旅程的编排步骤里加入判断逻辑,先检查令牌有效性,若过期则跳转到专门的提示步骤:

<OrchestrationStep Order="1" Type="ClaimsExchange">
  <ClaimsExchanges>
    <ClaimsExchange Id="ValidateIdToken" TechnicalProfileReferenceId="IdTokenHint_Validate" />
  </ClaimsExchanges>
  <Preconditions>
    <Precondition Type="ClaimsExist" ExecuteActionsIf="false">
      <Value>id_token_hint</Value>
      <Action>SkipThisOrchestrationStep</Action>
    </Precondition>
  </Preconditions>
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  <Preconditions>
    <Precondition Type="ClaimEquals" ExecuteActionsIf="false">
      <Value>id_token_valid</Value>
      <Value>false</Value>
      <Action>SkipThisOrchestrationStep</Action>
    </Precondition>
  </Preconditions>
  <ClaimsExchanges>
    <ClaimsExchange Id="ShowExpiredPrompt" TechnicalProfileReferenceId="SelfAsserted-ExpiredTokenPrompt" />
  </ClaimsExchanges>
</OrchestrationStep>

对应的SelfAsserted-ExpiredTokenPrompt技术配置可以只展示提示文本,不要求用户输入,明确告知用户需要重新生成令牌。

注意事项

  • 令牌过期的核心验证逻辑由Azure B2C自动完成,你只需要捕获错误并自定义提示内容即可。
  • 确保提示信息清晰,让用户明确知道下一步需要做什么。

内容的提问来源于stack exchange,提问作者Anna Melashkina

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 18:34:53