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

如何通过MSAL-React程序化触发Azure AD B2C重置密码流程?

Azure AD B2C/MSAL 密码重置流程实现方案

一、解决AADB2C90037错误,直接触发B2C原生重置流程

你遇到的AADB2C90037错误,是因为调用loginRedirect时参数传错了——重置密码不是所谓的“权限”,而是要指定B2C的重置密码用户流/自定义策略ID,同时配置正确的请求参数:

  • 点击重置按钮时,调用loginRedirect并传入重置密码流的授权地址,同时设置prompt: 'login'避免静默逻辑干扰,示例代码如下:
const resetPasswordRequest = {
  authority: "https://你的B2C租户域名.b2clogin.com/你的B2C租户ID.onmicrosoft.com/B2C_1_你的重置密码流ID", // 替换成自己的实际信息
  prompt: "login"
};
msalInstance.loginRedirect(resetPasswordRequest);

这样就能直接跳转到B2C官方的重置密码页面,不会再触发错误。

二、自定义内部重置页面+邮件链接的实现思路

如果想搭建自己的重置页面,再通过邮件发送链接触发流程,分两步走:

1. 生成带重置令牌的邮件链接

  • 在你的后端服务里,调用Azure AD B2C的密码重置令牌生成接口(可以通过Microsoft Graph,或者在B2C自定义策略里集成REST API),生成一个一次性的有效令牌。
  • 把令牌拼接成你的内部重置页面链接,比如:https://你的网站域名/reset-password?token=xxx&user=xxx,然后发送到用户邮箱。

2. 内部页面完成密码重置

  • 用户点击邮件链接进入你的自定义页面后,收集用户输入的新密码。
  • 调用Azure AD B2C的密码重置接口(或自定义策略里的REST端点),传入令牌和新密码完成重置操作。
  • 重置成功后,引导用户回到登录页,或者直接调用MSAL的loginRedirect完成登录。

三、关键注意点

  • 不管用哪种方式,必须先在B2C租户里创建好密码重置用户流(或对应的自定义策略),并且确保该流的回调地址已经添加到MSAL的配置里。
  • 自定义邮件链接时,要保证令牌的时效性(设置合理过期时间),并且传输过程要加密,避免泄露被恶意利用。

内容的提问来源于stack exchange,提问作者Denis S Dujota

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 04:50:06