Msal 2.0 - 如何使用 Azure B2C 生成注册 link?

Msal 2.0 - how to generate Sign Up link with Azure B2C?

在我的 angular 应用程序中,我使用 Azure AD B2C 进行身份验证,并使用 MSAL.js 2.0 库来处理它。我在主页上有一个“登录”按钮,这很简单。但我还需要一个“注册”按钮,这样用户将被直接重定向到 Azure B2C 'Sign Up' 页面。这可能吗?

通过创建个人登录和注册策略并进行以下更改,可以直接重定向到 Azure AD B2C 注册页面。单点登录注册策略将无法实现。

在应用程序中 config.ts 添加以下更改

export const b2cPolicies = {
    names: {
    SignIn: "b2c_1_SignIn",
    signup: "B2C_1_signup",
        resetPassword: "b2c_1_reset",
    },
    authorities: {
        SignIn: {
        authority: "https://fabrikamb2c.com/fabrikamb2c.onmicrosoft.com/B2C_1_SignIn"
      },
      signup: {
        authority: "https://fabrikamb2c.b2clogin.com/fabrikamb2c.onmicrosoft.com/B2C_1_signuptest"
      },
        resetPassword: {
            authority: "https://fabrikamb2c.b2clogin.com/fabrikamb2c.onmicrosoft.com/b2c_1_reset"
        } 
    }
}

创建注册按钮并添加注册点击功能

 signup() {
    this.authService.loginPopup(b2cPolicies.authorities.signup)
  }

我们可以使用单点登录注册策略和单点登录或注册策略。

此方法用于显示注册登录策略:

export const msalConfig = {
  auth: {
    clientId: "your app client id",
    authority:
    "https://XXX.b2clogin.com/XXX.onmicrosoft.com/<b2c policy name>",
    redirectUri: AZURE_REDIRECT_URI,
    postLogoutRedirectUri: "/",
    knownAuthorities: [
      "https://XXX.b2clogin.com/XXX.onmicrosoft.com/<b2c policy name>",
    redirectUri: AZURE_REDIRECT_URI",
    ],
  },
  cache: {
    cacheLocation: "localStorage",
    storeAuthStateInCookie: true,
  },
};

export const loginRequest = {
  scopes: ["https://XXX.onmicrosoft.com/api/XXX"],
};

//Click on login 
const handleLogin = () => {
    instance.loginPopup(loginRequest);
  };

此方法用于显示个人注册政策:

const handleSignup = () => {
    instance.loginPopup({
      authority:
        "https://XXX.b2clogin.com/tfp/XXX.onmicrosoft.com/<b2c policy name>",
      clientId: "your app client id",
      redirectUri: AZURE_REDIRECT_URI,
      postLogoutRedirectUri: "/",
      knownAuthorities: [
        "XXX.b2clogin.com/rentpundit1.onmicrosoft.com/<b2c policy name>",
      ],
      protocolMode: "OIDC",
    });