Angular-auth-oidc-client开发者必备:API参考与自定义存储策略全解析

【免费下载链接】angular-auth-oidc-client damienbod/angular-auth-oidc-client: 是一个用于 Angular 的 OpenID Connect 身份验证客户端库。适合对 Angular 和身份验证有兴趣的人,特别是想为自己的 Angular 应用添加 OpenID Connect 身份验证功能的人。特点是提供了一个简洁易用的客户端库,可以方便地与 Angular 应用集成,支持多种 OpenID Connect 身份提供商,具有高可扩展性和易用性。 【免费下载链接】angular-auth-oidc-client 项目地址: https://gitcode.com/gh_mirrors/an/angular-auth-oidc-client

angular-auth-oidc-client是一个用于 Angular 的 OpenID Connect 身份验证客户端库,适合为 Angular 应用添加 OpenID Connect 身份验证功能,支持多种身份提供商,具有高可扩展性和易用性。

angular-auth-oidc-client 身份验证库logo

核心 API 功能速览 🚀

用户信息与认证状态管理

OidcSecurityService 提供了丰富的 API 用于获取用户数据和认证状态:

  • userData$: 提供用户登录后的信息,返回 UserDataResult 对象,包含 userDataallUserData 字段。在单配置下直接通过 userData 获取用户信息,多配置时需从 allUserDataconfigId 查询。

    this.userData$ = this.oidcSecurityService.userData$;
    
  • isAuthenticated$: 返回认证状态 Observable<AuthenticatedResult>,单配置下直接判断 isAuthenticated,多配置时通过 allConfigsAuthenticated 数组查看各配置的认证状态。

认证流程控制

  • checkAuth(): 启动完整认证流程,解析 STS 回调 URL 并设置认证状态,返回 LoginResponse 包含令牌和用户数据。

    this.oidcSecurityService.checkAuth().subscribe(({ isAuthenticated, accessToken }) => {
      // 处理认证结果
    });
    
  • authorize()/authorizeWithPopUp(): 重定向或弹窗方式发起登录,支持自定义参数和配置 ID。

  • logoff()/logoffLocal(): 服务端注销或本地会话清除,支持多配置场景。

令牌管理工具

  • getAccessToken()/getIdToken(): 获取访问令牌和 ID 令牌,支持按配置 ID 查询。
  • forceRefreshSession(): 手动刷新会话,返回新的令牌信息。
  • revokeAccessToken()/revokeRefreshToken(): revoke 令牌,符合 RFC7009 标准。

自定义存储策略实现 🔧

默认情况下,库使用 sessionStorage 存储认证数据。如需自定义存储(如 localStorage 或加密存储),可实现 AbstractSecurityStorage 接口:

1. 创建自定义存储服务

import { AbstractSecurityStorage } from 'angular-auth-oidc-client';

@Injectable()
export class MyStorageService implements AbstractSecurityStorage {
  read(key: string): string | null {
    return localStorage.getItem(key); // 使用 localStorage
  }

  write(key: string, value: string): void {
    localStorage.setItem(key, value);
  }

  remove(key: string): void {
    localStorage.removeItem(key);
  }

  clear(): void {
    localStorage.clear();
  }
}

2. 注册自定义存储

在应用配置中提供自定义存储类:

// 独立组件模式
export const appConfig: ApplicationConfig = {
  providers: [
    provideAuth({ /* 配置 */ }),
    { provide: AbstractSecurityStorage, useClass: MyStorageService },
  ],
};

// NgModule 模式
@NgModule({
  imports: [AuthModule.forRoot({ config: { /* 配置 */ } })],
  providers: [{ provide: AbstractSecurityStorage, useClass: MyStorageService }],
})
export class AuthConfigModule {}

高级使用场景 📚

多配置管理

支持同时集成多个身份提供商,通过 configId 参数区分不同配置:

// 获取特定配置的用户数据
this.oidcSecurityService.getUserData('configId2').subscribe(userData => {
  // 处理多配置用户数据
});

静默刷新与会话检查

  • checkAuthIncludingServer(): 使用 iframe 静默检查服务端会话状态(仅适用于 iframe 静默刷新模式)。
  • checkSessionChanged$: 监听会话变更事件,及时响应服务端状态变化。

官方文档与资源

通过灵活运用上述 API 和存储策略,开发者可以轻松实现符合 OAuth2/OpenID Connect 标准的身份验证功能,满足不同场景下的安全需求。

【免费下载链接】angular-auth-oidc-client damienbod/angular-auth-oidc-client: 是一个用于 Angular 的 OpenID Connect 身份验证客户端库。适合对 Angular 和身份验证有兴趣的人,特别是想为自己的 Angular 应用添加 OpenID Connect 身份验证功能的人。特点是提供了一个简洁易用的客户端库,可以方便地与 Angular 应用集成,支持多种 OpenID Connect 身份提供商,具有高可扩展性和易用性。 【免费下载链接】angular-auth-oidc-client 项目地址: https://gitcode.com/gh_mirrors/an/angular-auth-oidc-client

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐