在 Web 应用开发中,身份验证是一项重要的安全措施。Microsoft Azure Active Directory(AD)是一种常见的用户认证和授权服务,在 Angular 应用中使用 AD 实现认证和授权是非常常见的需求。而 ng2-omelek-adal 就是一个用于在 Angular 应用中使用 Azure AD 进行身份验证和授权的 npm 包。
安装
要使用 ng2-omelek-adal,首先需要在应用中安装它。可以通过以下命令来安装最新版本:
npm install ng2-omelek-adal --save
配置
安装完成后,要在应用中设置一些配置信息,包括:
- 使用的 AD 应用的 Client ID
- AD 应用授权的重定向 URL
- 用于存储用户令牌的缓存机制
- 需要认证的资源
下面是一个基本的 ng2-omelek-adal 配置示例:
-- -------------------- ---- ------- ------ - ------------ ---------- --------------- - ---- ------------------ ----------- --- ---------- - ------------ - -------- ------------- --------- - ------- ----------------------------- --------- ----------------- ------------ ---------------------- - ---- ---------------------- ---------------------- - ---- -------------- --------------- ---------- - ------------------------- ---------------------- - --- --- - -- ------ ----- --------- - -
其中,tenant
和 clientId
是必填项,用于标识 AD 应用,redirectUri
和 postLogoutRedirectUri
则是授权以及退出登录后重定向的 URL。
cacheLocation
指定用户令牌的缓存方式,可以是 'sessionStorage' 或 'localStorage',一般情况下使用 'localStorage'。
endpoints
列出要运用 AD 身份验证和授权的 API 资源。
使用
在 Angular 组件或服务中,可以注入 AdalService
服务来进行身份验证和授权相关操作。
登录
使用 AdalService.login()
可以开始登录流程。当成功登录后,会在缓存中存储用户令牌信息。
-- -------------------- ---- ------- ------------ ------------ ----------------------- -- ------ ----- ------------- - ------------------- ------------ ------------ - - ------- - ------------------------- - -
退出登录
使用 AdalService.logOut()
可以退出登录,并清除用户令牌信息。
-- -------------------- ---- ------- ------------ ------------ ----------------------- -- ------ ----- ------------- - ------------------- ------------ ------------ - - -------- - -------------------------- - -
获取用户信息
使用 AdalService.userInfo
可以获取当前已登录用户的信息,包括名称、电子邮件地址、唯一 ID 等。
-- -------------------- ---- ------- ------------ ------------ -------------------------- -- ------ ----- ---------------- - ----- ------- ------ ------- --------- ------- ------------------- ------------ ------------ - ----- -------- - -------------------------- --------- - -------------- ---------- - ------------------ ------------- - --------------------- - -
向 API 发送请求
在发送请求前,首先需要使用 AdalService.acquireToken()
来获取 API 调用所需要的访问令牌。获取到访问令牌后,可以添加到请求头部中,与 API 进行交互。
-- -------------------- ---- ------- ------------ ------------ ------------------------- -- ------ ----- --------------- - ------- ------ ------------------- ------------ ------------ ------- ----- ----------- - - ---------- - --------------------------------------------------------- ---------------- -- - ------------------------------------------------------- - -------- - -------------- ------- --------- - ------------------- -- ----------- - -------- --- - -
总结
ng2-omelek-adal 是用于在 Angular 应用中使用 Azure AD 进行身份验证和授权的 npm 包。它提供了完整的认证和授权流程,以及获取用户信息、访问受保护的 API 等常见场景的解决方案。使用 ng2-omelek-adal,开发者可以轻松地实现身份验证和授权相关功能,提高应用的安全性和可靠性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005672681e8991b448e3a40