Azure AD B2C合并登录注册策略下Node.js应用如何显示注册选项
问题原因
你当前配置的是普通Azure AD的标准认证端点,没有关联你提前创建的B2C登录注册合并用户流,所以加载的是默认AAD登录页面,自然不会显示注册入口。
修复步骤
- 替换认证端点配置:将原来的
authority字段值替换为你的B2C用户流专属地址,格式为https://<你的B2C租户名>.b2clogin.com/<你的B2C租户名>.onmicrosoft.com/<登录注册用户流名称>,比如用户流命名为B2C_1_signup_signin、租户名为demoTenant,最终地址就是https://demotenant.b2clogin.com/demotenant.onmicrosoft.com/B2C_1_signup_signin - 新增B2C专属校验配置:在auth配置块中添加
knownAuthorities字段,值为你的B2C域名,示例为["<你的B2C租户名>.b2clogin.com"],避免MSAL拦截非标准AAD域名 - 调整权限范围配置:B2C本地身份验证场景下不需要调用Microsoft Graph的
user.read权限,可以替换为["openid", "profile", "offline_access"]避免权限校验报错
修改后的完整配置示例如下:
const config = { auth: { clientId: "******", authority: "https://<你的B2C租户名>.b2clogin.com/<你的B2C租户名>.onmicrosoft.com/B2C_1_<你的登录注册用户流名称>", clientSecret: "*****", knownAuthorities: ["<你的B2C租户名>.b2clogin.com"] }, system: { loggerOptions: { loggerCallback(loglevel, message, containsPii) { console.log(message); }, piiLoggingEnabled: false, logLevel: msal.LogLevel.Verbose, } } };
修改完成后重新启动应用,加载的登录页底部就会自动显示「没有账户?立即注册」的入口,也支持你配置的第三方身份提供商注册逻辑。如果需要直接跳转单独注册页,只需要新建单独的注册用户流,请求时把authority替换为对应注册流的端点即可。
内容的提问来源于stack exchange,提问作者Coder94
相关产品推荐
相关产品推荐

