使用邀请注册策略注册后自动登录 [英] Auto logged in after signing up using invitation signup policy

查看:7
本文介绍了使用邀请注册策略注册后自动登录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我现在使用的是Azure B2C的邀请策略,跟随链接https://github.com/azure-ad-b2c/samples/tree/master/policies/invite,并且能够使用id_Token_hint成功地生成一个注册链接。我们没有通过电子邮件发送链接,而是使用了一个API将链接发送到角度应用程序,然后在单击注册按钮时触发链接。尽管流程在技术上运行良好,但我们的团队正在考虑实现两个增强,以使UX变得更好。

  1. 第一个是,在成功注册后,我们设置的重定向URI被触发,浏览器重定向到它,但由于该页面正在进行一些API调用,所以这是受保护的,并且我们应用程序的登录用户流被触发。如果我们使用B2C本身提供的用户流进行注册,我们也会在相同的流中登录,但在注册的情况下,登录是额外的步骤,我的团队正在考虑将其删除。我们有没有办法做到这一点?我已经读到,由于流量不是由我们的网站发起的,邀请注册返回的令牌被忽略。那么,有没有办法绕过这个问题呢?

    我的注册URL: Signup url with id_token_hint

    令牌甚至会被jwt.ms捕获,但ANGLE APP不会考虑它。 token after signup screen captured by jwt.ms

  2. 其次,有没有办法像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

这些令牌中的几乎所有其他字段都相似。

推荐答案

  1. 我认为您应该考虑修改您的API,以便它返回一个id_Token(而不是链接)。则ANGLE APP应该调用该接口,并通过传递接收到的id_TOKEN从ANGLE APP发起B2C_1A_SIGNUP_INVITION流。

  2. 尝试将GitHub示例中的第85行从<OutputClaim ClaimTypeReferenceId="ReadOnlyEmail" Required="true" />更改为<OutputClaim ClaimTypeReferenceId="ReadOnlyEmail" PartnerClaimType="Verified.Email" Required="true" />。 并将EnforceEmailVerify设置为True。

这篇关于使用邀请注册策略注册后自动登录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆