@almaobservatory/alma-oidc-client

中文文档
1.13.11发布于 2026/02/26TypeScriptES Module近 30 天下载 2262

这是版本 1.13.10 联合国 角13:已添加 publicURLs 选择配置选项, 更正 README 文件.

中文使用文档
文档目录13 节
  1. 发展
  2. 构建
  3. 向国家预防机制公布图书馆
  4. 未出版国家预防机制的图书馆
  5. 您客户端应用程序中的用法
  6. 一般说明
  7. 更新软件包.json
  8. 环境.ts
  9. 应用模块.ts
  10. 应用-路由.module.ts
  11. 应用全球
  12. 应用程序组件.ts
  13. 其他变动

@almaobservatory/alma-oidc-客户端图书馆

这是版本 1.13.10 联合国 角13:已添加 publicURLs 可选配置选项, 更正了 README 文件 .

这是基于 ALMA 的 OAuth2/ OIDC 客户端库 角- oaut2- oidc。 。 。 . 此项执行是为了: 键盘 为 ALMA 配置的身份提供者 .

图书馆的代码在 OBOPS/npm/alma-oidc-客户-lib/项目/alma-oidc-客户。 。 。 .

一个 实例客户端应用程序 这个 图书馆可供使用.

发展

图书馆是使用描述的程序开发的 这里。 。 。 .

页:1 如果你不遵循这个过程 没错 你会陷入困境: 没有捷径!

如果您需要同时开发此库 作为客户端应用程序 应使用与《公约》第2条相同的方法 示例应用程序, (中文(简体) ), 见 pull-lib 目标 创建文件 在这里.

页:1 这可能需要一些杂耍 npm install 在你们面前 说对了.

构建

从顶级目录, OBOPS/npm/ alma-oidc-客户,发射 make clean build - 它会运行 npm install 财务报告和审定财务报表 ng build。 。 。 .

向国家预防机制公布图书馆

图书馆的新版本可向国家预防机制出版 提供 ALMA 开发者.

页:1 您不能两次发布相同的版本 。 你需要更新 页:1 version 数字 软件包.json 在试图出版图书馆之前.

页:1 请记住更新文件的第一段!

命令 make publish 将重建图书馆并向国家预防机制登记册公布

未出版国家预防机制的图书馆

从命令行 :

npm unpublish @almaobservatory/alma-oidc-client@<version>

地点 <version> 有点像 0.1.1 。 。 。 .

您客户端应用程序中的用法

一般说明

  • 确保您的应用程序不会干扰会话存储, 如 角- oaut2- oidc 保存重要信息。 具体来说, 确保你永远不要打电话 window.sessionStorage.clear()。 。 。 .

更新软件包.json

添加以下依赖关系到 弧/主/角/包.json数字 :

    "@almaobservatory/alma-oidc-client": "^1.11.0",
    "angular-oauth2-oidc": "^8.0.0",
    "angular-oauth2-oidc-jwks": "^9.0.0",

环境.ts

编辑 弧度/主/角/弧/环境/环境.ts 联 合 国 音标 对应单位 添加 securedUrls 财务报告和审定财务报表 oauthOidcClientID 字段.

export const environment = {
    ...
    securedUrls: [ ... ],
    oauthOidcClientID: 'oidc',
    ...
};

外地 securedUrls 应 包括一系列 URL 片段( 字符串): 将用于识别 hTTP 请求应包含 授权 标题为 守护者 符号 .

碎片应匹配服务器侧配置的所有 URL 输入 .antMatchers() 内部通话 页:1 WebSecurityConfigurerAdapter,包括所有 authenticated() 财务报告和审定财务报表 .hasAnyAuthority() 案例.

例如,如下: antMatchers数字 :

    .antMatchers( "/public/api/**"   ).permitAll()
    .antMatchers( "/admin/api/dr/**" ).hasAnyAuthority( "OBOPS/DRM", "OBOPS/ARCA" )
    .antMatchers( "/service/api/**"  ).authenticated()

一个应该设置 securedUrls 字段改为:

    securedUrls: ['admin','service']

另见 AlmaOidcAuthInterceptorConfig。 。 。 .

页:1
案子是这样的 .antMatchers( "/**" ).authenticated() 无法是 地图,和你的 蚂蚁匹配器 应始终包含一个实际的 URL 碎片.
显然, .antMatchers( "/**" ).permitAll() 好吧,如果冒险.

应用模块.ts

import { OAuthModule } from 'angular-oauth2-oidc';
import { environment } from '../environments/environment';
import { AlmaOidcModule } from "@almaobservatory/alma-oidc-client";

...

imports: [
    ...
    OAuthModule.forRoot(),
    AlmaOidcModule.forRoot( { securedURLs: environment.securedUrls } ),
]

应用-路由.module.ts

RouterModule.forRoot(): 如果设置属性 useHash 改为 true 确保您也设置 initialNavigation 改为 false, (中文(简体) ), 见 这里。 。 。 .

页:1 从Angular 11开始 RouterModule 配置应该有 initialNavigation 设置为 'disabled' 改为 false。 。 。 .

应用全球

在此文件中,或类似位置类似 环境/环境.ts,定义我们资源服务器的 URL, 直至并包括上下文路径,排除任何超出此范围的东西.
比如说,

this.resourceServerURL = this.developmentMode ? 'http://localhost:10000/snoopi' : '/snoopi';

应用程序组件.ts

方法 AlmaOidcService.authenticateAndInit() 执行 认证序列.
参数:

  • 客户端ID: OIDC 客户端的ID, 例如“ oidc ”

  • 资源服务URL: 我们资源服务器的 URL, 最多并包括 上下文路径,不包括任何超出 那个.
    例如,http://localhost:1000/clai 互联网档案馆的存檔,存档日期2013-12-02

该方法返回可用于运行初始化代码的许诺 并导航到用户的预定标签——导航在 应用模块 initialNavigation: false (或 'disabled', (中文(简体) ), (a) 以“Angular 11+”表示 之后 初始化成功完成 .
例如:

import { AlmaOidcService } from '@almaobservatory/alma-oidc-client';
import { environment } from "../environments/environment";
import { Globals } from './app.globals';
import { Router } from '@angular/router';

...

constructor( ...,
             private router: Router,
             private almaOidcService: AlmaOidcService, 
             private globals: Globals ) { ... }

...

ngOnInit(): void {

    ...
    
    // At the end of the authentication/initialization phase we need to navigate to
    // the user's intended tab: we extract that from the URL they used to get here
    // If none is found we provide a default tab
    const navigateTo = window.location.hash.length === 0 ? '/default-tab' : window.location.hash.substr( 1 );
    this.almaOidcService
        .authenticateAndInit( environment.oauthOidcClientID, this.globals.resourceServerURL )
        .then( () => this.router.navigate( [navigateTo] ))
        .then( () => this.appService.startup() );

其他变动

  • 删除所有呼叫 /login-check, (中文(简体) ), /do-logout 财务报告和审定财务报表 /account 终点, 和任何相关的代码

  • 在成功认证后,一些用户信息,包括用户名, 完全名称和电子邮件地址,可从 OIDC 信使中获取;有 无需为此查询资源服务器 .
    单位 AlmaOidcService 见 userIdentity 获取器和 快捷键 username, (中文(简体) ), fullname, (中文(简体) ), email 财务报告和审定财务报表 roles。 。 。 .
    比如说,

      this.globals.account = {
        name: this.almaOidcService.fullname,
        authorities: this.almaOidcService.roles
      };
    
  • 要登录应用程序和 OIDC 服务器, 请使用 AlmaOidcService.logout()

版本与发布记录

@almaobservatory/alma-oidc-client 共发布 54 个版本,首次发布于 2021/05/10;过去 12 个月发布了 1 个版本。

版本发布日期距今
1.13.11latest2026/02/268 个月前
1.13.102023/12/072 年前
1.13.92023/12/072 年前
1.13.82022/05/064 年前
1.13.72022/05/064 年前
1.13.62022/05/064 年前

关于 @almaobservatory/alma-oidc-client 的常见问题

@almaobservatory/alma-oidc-client 是什么?

这是版本 1.13.10 联合国 角13:已添加 publicURLs 选择配置选项, 更正 README 文件.

如何安装 @almaobservatory/alma-oidc-client?

在项目目录运行 npm install @almaobservatory/alma-oidc-client,或使用 pnpm add / yarn add / bun add。

@almaobservatory/alma-oidc-client 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@almaobservatory/alma-oidc-client 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@almaobservatory/alma-oidc-client 可以商用吗?

@almaobservatory/alma-oidc-client 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@almaobservatory/alma-oidc-client 的下载量有多少?

根据 npm 官方下载统计,@almaobservatory/alma-oidc-client 在 2026/10/06 – 2026/11/04 这 30 天内被下载 2,262 次,日均约 75 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@almaobservatory/alma-oidc-client 还在维护吗?

最新版本 1.13.11 发布于 2026/02/26(8 个月前);至今共发布 54 个版本,其中过去 12 个月发布了 1 个;首次发布于 2021/05/10。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。