【问题标题】:Azure B2C with pre-invited users具有预先邀请用户的 Azure B2C
【发布时间】:2019-06-12 14:40:51
【问题描述】:

我维护一个使用 Azure AD B2C 进行身份验证的应用。

流程是这样的:

  1. 通过电子邮件邀请用户
  2. 他们点击链接以使用 B2C 登录/注册流程进行注册
  3. 他们填写信息,包括电子邮件地址
  4. 他们被重定向到我们的应用程序

现在,困扰我的是用户必须输入他们的电子邮件地址,即使我们已经知道了。我们只是使用他们的电子邮件地址邀请他们。

suggested 我们可以将人们转至密码重置页面。但这似乎也不理想,因为他们必须验证他们的电子邮件地址,即使我们只是验证了它。毕竟,他们是通过收到电子邮件开始流程的。

在许多情况下,用户在被要求输入电子邮件地址时会错误地输入他们的电子邮件地址。这会带来很多新问题,因为我们现在为同一个用户提供了两个不同的电子邮件地址。

【问题讨论】:

    标签: azure azure-ad-b2c


    【解决方案1】:

    类似的问题已经回答@How to pass email suggestion to Azure AD B2C SignUp page。 Answer https://stackoverflow.com/a/56503578/341185 描述了如何发送邀请。

    在自定义策略中使用 Javascript 的替代方法

    您可以使用自定义策略和 Javascript 在电子邮件地址文本框中显示用户的电子邮件。

    方法: 在发送邀请链接时,发送一个额外的查询参数,如 &email_hint=azureb2ccustomer@b2clogin.com 并按照以下步骤在电子邮件地址文本框中显示此 email_hint 值

    步骤:

    1. 在自定义策略中启用 Javascript https://docs.microsoft.com/en-us/azure/active-directory-b2c/javascript-samples
    2. 更改页面合同以允许自定义策略运行 javascript https://docs.microsoft.com/en-us/azure/active-directory-b2c/page-contract
    3. 更新 SignupOrSignin 用户旅程以直接进入注册页面 https://stackoverflow.com/a/56503494/341185
    4. 更新您的 blob HTML 页面以读取查询参数并将值放入电子邮件文本框中
    var urlParams = 新的 URLSearchParams(window.location.search); document.getElementById("email").value = urlParams.get('email_hint');

    点击here为例请求

    如果您仍需要上述以外的任何其他方法来适应您的业务模型,请添加您的 cmets。

    【讨论】:

      【解决方案2】:

      如果您想使用自定义策略,您可以使用以下流程进行密码重置:

      &client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer &client_assertion=JWT

      这会将电子邮件地址放在 JWT 中,因此用户不必输入它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多