ng2-adal-test
是一个针对 Angular 2+ 程序设计的 npm 包,用于在程序中实现 Azure Active Directory 鉴权。本文将深入探讨该 npm 包的使用方法以及实现的原理。
安装
安装 ng2-adal-test
轻而易举,只需要在终端输入:
npm install ng2-adal-test --save
快速开始
完成安装后,我们需要在 Angular 2+ 的程序中使用该 npm 包。首先,在 app.module.ts
中引入该包并添加到 Providers
数组中,如下:
-- -------------------- ---- ------- ------ - ----------- - ---- ---------------- ----------- ------------- - ------------- -------------- -- -------- - -------------- ------------ ----------- ---------------------------- -- ---------- -------------- -- -- ----------- - --------- --- ---------- -------------- -- ------ ----- --------- - -
接下来,在 app.component.ts
中引入该 npm 包并实例化一个 AdalService
对象。在构造函数中,我们需要配置租户、客户端 ID 和需要受保护的资源等信息。如下:
-- -------------------- ---- ------- ------ - --------- - ---- ---------------- ------ - ----------- - ---- ---------------- ------------ --------- ----------- ------------ ----------------------- ---------- ----------------------- -- ------ ----- ------------ - ------------------- ------------ ------------ - -- ------- ----------------------- ------- ----------- --------- -------- ----- ------------ --------------------- ---------------------- ------ ---------- - ------------------------------ ----------------------------- -- ---------------------- -------------------- --- -- -- ------------------------- - -
最后,在 app.component.html
模板中添加如下代码:
<div *ngIf="!adalService.userInfo.authenticated"> 正在跳转到认证页面... </div> <div *ngIf="adalService.userInfo.authenticated"> 登录成功!你好,{{ adalService.userInfo.profile.given_name }} {{ adalService.userInfo.profile.family_name }}。 </div>
现在,你可以在浏览器中运行该程序。当程序加载时,它会自动跳转到 Azure Active Directory 鉴权界面,登录后即可在程序界面中看到登录成功的提示信息。
原理分析
当我们在程序中调用 this.adalService.login()
时,ng2-adal-test
会首先使用 Azure Active Directory 中的 OAuth2 授权码模式,向认证服务器请求授权码并将用户重定向到 Azure Active Directory 的登录页面。用户登录成功后,Azure Active Directory 将授权码发送回客户端浏览器并将用户重定向到客户端应用程序。
接着,ng2-adal-test
获取到授权码,使用该授权码与 Azure Active Directory 进行交互,获取到访问令牌。访问令牌包含了我们所请求的资源(API)的权限,我们可以使用该访问令牌调用 API。
示例代码
你可以在 GitHub 上查看 ng2-adal-test
的完整示例代码。
结论
本文介绍了 npm 包 ng2-adal-test
的使用方法及其实现原理。了解和使用该包可以帮助我们快速实现 Azure Active Directory 鉴权,并保护我们的应用程序资源。大家可以试着在自己的项目中使用该 npm 包,体验一下 Azure Active Directory 鉴权的功能。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005668481e8991b448e2b17