npm 包 generator-express-azuread 是一个快速搭建基于 Express 框架的 Azure Active Directory 集成应用的工具。本文将介绍这个 npm 包如何正确使用,并提供示例代码以指导读者快速上手。
安装 generator-express-azuread
首先我们需要在全局环境下安装 Yeoman 和 generator-express-azuread 包,可以通过以下命令完成:
npm install -g yo generator-express-azuread
生成项目
执行
yo express-azuread
,然后系统会提示填写一些基本信息,包括应用名称、应用 ID 等。填写完这些信息后,系统会自动生成一个基于 Express 框架的 Azure Active Directory 集成应用的模板。
代码解析
下面是模板代码的解析,在此过程中我们会了解 generator-express-azuread 是如何为我们创建项目的:
index.js
这个文件是 Express 应用的入口,其中包括一些基本的配置,比如引入中间件、监听端口等。
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ---- - ---------------- ----- ------------ - ------------------------- ----- ------ - ------------------ ----- ----------- - -------------------------- ----- ----------- - -------------------------- ----- --- - ---------- ---------------- -------------------- ---------- ------------- -------- ------- ----------------------- ------------------------ ---------------------------- --------- ----- ---- ------------------------ ------------------------------------------- ------------ ------------ ------------- ----------------- ------------- ----- ---- - ---------------- -- ----- ---------------- -- -- - ------------------- ------- -- ---- ---------- --- -------------- - ----
routes/index.js
该路由文件处理应用的主页请求。
const express = require('express'); const router = express.Router(); router.get('/', (req, res) => { res.render('index', { title: 'Express' }); }); module.exports = router;
routes/users.js
该路由文件处理应用的用户请求。
const express = require('express'); const router = express.Router(); router.get('/', (req, res) => { res.send('respond with a resource'); }); module.exports = router;
views/index.ejs
该视图文件展示主页。
-- -------------------- ---- ------- --------- ----- ------ ------ ---------- ----- ---------- ----- ---------------- ----------------------------- -- ------- ------ ------- ----- ------- ---------- -- --- ----- ------ ------- -------
public/stylesheets/style.css
该样式文件定义应用的样式。
h1 { color: #888; }
集成 Azure Active Directory
生成项目后,我们需要在 Azure 上创建应用并获取相应的凭证信息,再将它们配置到应用中去,以实现与 Azure Active Directory 的集成。
下面的过程将指导你完成这些操作:
创建应用
登录 Azure 管理门户,在「应用注册」的页面中点击「新注册」按钮。
填写应用的名称、账户类型和重定向 URI。
注册成功后,在应用概况页面下可以看到应用程序 ID。
配置应用
在 Azure 管理门户的应用概况页面中点击「证书和秘钥」。
创建一个客户端密码,并保存该密码。注意,生成密码后要立即将其拷贝下来,因为它只会显示一次。
在应用代码中,在
config/config.json
中添加以下配置
-- -------------------- ---- ------- - ------- - ------------ ------------------------------------------- ----------- ----------- --------------- ---------- --------------- ------- --------------- ------------ -------------- ------------------------------------------- ----------------- ------ -------------------- ------ ---------------------------- ----- -------- ----------- ----------------- - -
其中:
authority
表示授权服务器 URL;clientID
表示应用程序 ID;clientSecret
表示客户端密码;responseType
表示响应类型;responseMode
表示响应模式;redirectUri
表示重定向 URI;validateIssuer
表示是否验证 Issuer;passReqToCallback
表示是否将 req 参数传递到后台回调函数;useCookieInsteadOfSession
表示是否使用 Cookie 代替 Session;scope
表示请求的 OAuth 范围。
配置路由
在 routes/index.js
中增加代码:
-- -------------------- ---- ------- -------------------------- ----- ---- ----- -- - ----- ------------- - --- ---------------- ------------------------------- ---- ------ --- ----------- ---------------------- ---------------------------------------------- - ---------------- --- --- ----- ---- -- - ------------------ - --
在 routes/users.js
中增加代码:
router.get('/signout', (req, res) => { req.session.destroy(() => { req.logout(); res.redirect('/'); }); });
使用示例
在完成以上配置后,我们就可以启动应用了。
在项目根目录下执行以下命令:
DEBUG=test:* npm start
通过浏览器访问地址:
http://localhost:3000
就可以看到我们生成的模板应用了。在地址栏输入 /signin-oidc
,就可以使用 Azure Active Directory 登录了。登陆成功后,我们可以在 /users
路径下看到用户信息。在地址栏输入 /signout
就可以退出登录。
总结
这篇文章介绍了如何使用 npm 包 generator-express-azuread 快速搭建基于 Express 框架的 Azure Active Directory 集成应用。我们了解了如何生成项目,如何集成 Azure Active Directory,并提供了相应的代码解析和示例代码。相信通过本篇文章,读者已经对如何使用这个 npm 包可以有了一个相对深入的理解,可以更加高效地开发基于 Express 框架的 Azure Active Directory 集成应用了。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055c2281e8991b448d9c02