繁体   English   中英

Azure AD B2C 注册

[英]Azure AD B2C signUp

我已经在 Azure 门户中配置了一个应用程序并设置了必要的用户策略:签名和注册、密码重置。 我选择了一起登录和注册的用户策略。 我已经创建了一个示例 Nodejs 应用程序,参考了 azure b2c 的 Microsoft 文档,如下所示,

const express = require("express");
const msal = require('@azure/msal-node');

const SERVER_PORT = process.env.PORT || 3000;

// Create Express App and Routes
const app = express();


const config = {
    auth: {
        clientId: "******",
        authority: "https://login.microsoftonline.com/<tenantid>",
        clientSecret: "*****"
    },
    system: {
        loggerOptions: {
            loggerCallback(loglevel, message, containsPii) {
                console.log(message);
            },
            piiLoggingEnabled: false,
            logLevel: msal.LogLevel.Verbose,
        }
    }
};


// Create msal application object
const cca = new msal.ConfidentialClientApplication(config);

app.get('/', (req, res) => {
    const authCodeUrlParameters = {
        scopes: ["user.read"],
        redirectUri: "http://localhost:3000/auth/openid/return",
    };

    // get url to sign user in and consent to scopes needed for application
    cca.getAuthCodeUrl(authCodeUrlParameters).then((response) => {
        res.redirect(response);
    }).catch((error) => console.log(JSON.stringify(error)));
});

app.get('/auth/openid/return', (req, res) => {
    const tokenRequest = {
        code: req.query.code,
        scopes: ["user.read"],
        redirectUri: "http://localhost:3000/auth/openid/return",
    };

    cca.acquireTokenByCode(tokenRequest).then((response) => {
        console.log("\nResponse: \n:", response);
        res.sendStatus(200);
    }).catch((error) => {
        console.log(error);
        res.status(500).send(error);
    });
});

app.listen(SERVER_PORT, () => console.log(`Msal Node Auth Code Sample app listening on port ${SERVER_PORT}!`))

使用此代码,我可以查看登录/登录页面,但我不确定如何在此处添加注册选项,以便我可以使用身份提供者向租户注册用户。 如何在此处获得注册页面/选项? 有人可以帮我解决这个问题吗?

• 您可以在azure AD B2C 中的node js 应用程序中添加注册页面信息,如下所示,使用代码中使用的变量: -

     var createError = require('http-errors');
      var express = require('express');
     var path = require('path');
    var cookieParser = require('cookie-parser');
      var logger = require('morgan');
     var session = require('express-session');
      var okta = require("@okta/okta-sdk-nodejs");
       var ExpressOIDC = require("@okta/oidc-middleware").ExpressOIDC;
       var oktaClient = new okta.Client({
        orgUrl: '{yourOktaOrgUrl}',
          token: '{yourOktaToken}'
      });
       const oidc = new ExpressOIDC({
       issuer: "{yourOktaOrgUrl}/oauth2/default",
           client_id: {yourClientId},
       client_secret: {yourClientSecret},
        redirect_uri: 'http://localhost:3000/users/callback',
        scope: "openid profile",
        routes: {
        login: {
       path: "/users/login"
      },
   callback: {
  path: "/users/callback",
  defaultRedirect: "/dashboard"
      }
      }
      });

通过这种方式,您可以在 node js web 应用程序代码中添加插入用户注册选项的选项。

请找到以下链接以获取更多信息:-

https://github.com/instafluff/NodeJS-on-Azure-Cloud-Native-Authentication

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM