在B2C预创建用户后如何让重置密码流程URL预填充邮箱字段
解决方案
你遇到的login_hint不生效的问题,是因为Azure AD B2C内置的重置密码用户流默认不支持用login_hint参数预填充邮箱字段,可按你使用的流类型选择对应方案:
方案1:使用内置用户流(无需修改自定义策略)
- 进入B2C租户控制台,找到你正在使用的
B2C_1_ResetPassword用户流 - 点击左侧菜单的「页面布局」,选择「统一的密码重置页」
- 找到邮箱地址对应的输入控件,点击编辑,在「默认值」配置项填入
{OAUTH-KV:email} - 保存用户流配置后,修改你发送的重置密码URL,追加
&email=用户邮箱地址参数即可,示例URL如下:
https://xxx.b2clogin.com/xxx.onmicrosoft.com/oauth2/v2.0/authorize?p=B2C_1_ResetPassword&client_id=xxx&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=code&prompt=login&code_challenge=xxx&email=me@example.com
方案2:使用自定义策略
如果你的重置密码流程是基于自定义策略实现的,可以直接在对应的自断言技术配置文件中新增输入声明绑定,直接复用login_hint参数无需新增参数:
<TechnicalProfile Id="SelfAsserted-PasswordReset"> <InputClaims> <!-- 直接读取login_hint参数的值赋值给邮箱输入框对应的声明 --> <InputClaim ClaimTypeReferenceId="signInName" DefaultValue="{OAUTH-KV:login_hint}" AlwaysUseDefaultValue="true" /> </InputClaims> </TechnicalProfile>
注意事项
- 预填充仅能减少用户输入步骤,邮箱身份验证(收验证码)环节属于安全策略,无法直接跳过
- 如果你修改了用户流的输入字段配置,需要重新发布用户流才能生效
内容的提问来源于stack exchange,提问作者Baked Inhalf
相关产品推荐
相关产品推荐

