我们要做的是在用户成功注册后自动登录\登录。
假设用户收到了应用程序的邀请。他们转到"注册"页面,填写表单并单击"创建"按钮。如果一切正常,则会将用户添加到 Azure B2C 目录,然后我们会以某种方式自动运行登录策略或以其他方式自动登录。
所以我只想知道在使用 Azure B2C 时这是否可行。
编辑
进一步调试后,我看到问题出在哪里...
我们有一个旧的AngularJS(1.6)SPA应用程序。
用户完成注册过程后,将从 Azure B2C 发回#id_token
...但是在浏览器中的URL具有#id_token
后,控制权不会传递给应用程序,即不调用OWIN中间件。对于登录,它按预期工作,因为它从 SPA 本身内部开始。用户单击"登录"按钮,并被msalService.loginRedirect
重定向。
注册策略的执行是不同的,因为它仅通过电子邮件邀请链接开始。所以它不是来自SPA本身。 一旦Azure B2C重定向回应用程序,#id_token
的哈希部分就会被AngularJS搞砸。
我已经在$locationProvider.html5(true)
模式下玩过AngularJS,但它不起作用。
我现在要做的是重定向到自定义signup.html
回复 URL,然后返回 AngularJS 应用程序,但我不确定如何连接它。
默认情况下,在流(即除密码重置流之外的所有内置流和除密码重置流之外的所有自定义流)结束时,将为用户生成 SSO 会话,以便他们实际上在注册后登录。
因此,同一会话中的默认体验是,如果用户注册应用 A,然后被重定向以登录应用 B,则不会提示他们重新进行身份验证。
可以配置注册和登录流,以便它们发出相同的声明,以便应用程序可以处理具有相同行为的注册和登录回调。