使用邀请注册策略注册后自动登录 [英] Auto logged in after signing up using invitation signup policy
问题描述
所以我现在使用的是Azure B2C的邀请策略,跟随链接https://github.com/azure-ad-b2c/samples/tree/master/policies/invite,并且能够使用id_Token_hint成功地生成一个注册链接。我们没有通过电子邮件发送链接,而是使用了一个API将链接发送到角度应用程序,然后在单击注册按钮时触发链接。尽管流程在技术上运行良好,但我们的团队正在考虑实现两个增强,以使UX变得更好。
第一个是,在成功注册后,我们设置的重定向URI被触发,浏览器重定向到它,但由于该页面正在进行一些API调用,所以这是受保护的,并且我们应用程序的登录用户流被触发。如果我们使用B2C本身提供的用户流进行注册,我们也会在相同的流中登录,但在注册的情况下,登录是额外的步骤,我的团队正在考虑将其删除。我们有没有办法做到这一点?我已经读到,由于流量不是由我们的网站发起的,邀请注册返回的令牌被忽略。那么,有没有办法绕过这个问题呢?
我的注册URL: Signup url with id_token_hint
令牌甚至会被jwt.ms捕获,但ANGLE APP不会考虑它。 token after signup screen captured by jwt.ms
其次,有没有办法像B2C的默认注册流程一样启用电子邮件验证,即在继续之前向电子邮件发送OTP?根据Microsoft文档,您可以通过更新策略文件中的元数据下的这段代码来实现这一点,如下所示。默认情况下,它是‘False’,所以我确实将其更改为‘True’,但验证流仍然没有启用。如果我遗漏了什么?
<Item Key="EnforceEmailVerification">True</Item>
编辑: 既然您问我是如何在我的API中添加身份验证的,我在下面添加了一张图片。这对于正常的登录流来说工作得很好。同时,我也会检查一下你们提供的链接,看看它是否解决了我的问题。
我的接口配置:Config in my backend API 启动:In startup file
然后,我通过指定JWT选项和附加配置使用了AddMicrosoftIdentityWebApi。
此外,我在这两种情况下都附加了已解码的令牌。KID不同,注册令牌多了一个字段x5T。 正常登录流令牌:Signin flow token 受邀电子邮件注册令牌:Signup flow token这些令牌中的几乎所有其他字段都相似。
推荐答案
我认为您应该考虑修改您的API,以便它返回一个id_Token(而不是链接)。则ANGLE APP应该调用该接口,并通过传递接收到的id_TOKEN从ANGLE APP发起B2C_1A_SIGNUP_INVITION流。
尝试将GitHub示例中的第85行从
<OutputClaim ClaimTypeReferenceId="ReadOnlyEmail" Required="true" />
更改为<OutputClaim ClaimTypeReferenceId="ReadOnlyEmail" PartnerClaimType="Verified.Email" Required="true" />
。 并将EnforceEmailVerify设置为True。
这篇关于使用邀请注册策略注册后自动登录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!