[英]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.