@frontegg/angular

中文文档
7.24.2发布于 2026/11/11MITTypeScriptESM + CJS近 30 天下载 9183
Frontegg Logo

前额巨角

Frontegg是一个网络平台,其中

中文使用文档
文档目录7 节
  1. 前额巨角
  2. 第3.0.1版以来的变化
  3. 1. 安装Frontegg图书馆
  4. 2. 配置
  5. 3. 了解用户背景
  6. 4. 在您的路由模块中添加 FronteggAuthGuard
  7. 5. 运行 App, 注册和登录
Frontegg Logo

前额巨角

Frontegg是一个网络平台,SaaS公司可以在此设置其完全管理,可伸缩和品牌意识的-SaaS功能,并整合到其SaaS门户网站中,最多有5行代码.


第3.0.1版以来的变化

如果你从 @frontegg/angular 版本2或更早,您可以找到 这里的移民指南

1. 安装Frontegg图书馆

运行以下命令以安装 Frontegg 角库 :

npm install @frontegg/angular

2. 配置

  1. 添加 FronteggAppModule 改为 AppModule.imports[]
  2. 添加 FronteggComponent 改为 AppModule.entryComponents[]
/app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { CommonModule } from '@angular/common';
import { FronteggAppModule, FronteggComponent } from '@frontegg/angular';

@NgModule({
  declarations: [AppComponent],
  imports: [
    CommonModule,
    BrowserModule,
    AppRoutingModule,

    /** 1. Import Frontegg Module **/
    FronteggAppModule.forRoot(
      {
        contextOptions: {
          baseUrl: 'https://[YOUR_SUBDOMAIN].frontegg.com',
          clientId: '[YOUR_CLIENT_ID]'
        },
      }
    ),
  ],

  /** 2. Add Frontetgg Component to your entryComponents **/
  entryComponents: [FronteggComponent],

  bootstrap: [AppComponent],
})
export class AppModule { }

连接您的应用程序靴子组件 fronteggService 以查看前置加载状态

//app.component.ts

import { Component, OnInit, OnDestroy } from '@angular/core';
import { FronteggAuthService, FronteggAppService } from '@frontegg/angular';
import { Subscription } from 'rxjs';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
})
export class AppComponent implements OnDestroy {
  isLoading = true;
  loadingSubscription: Subscription;
  constructor(private fronteggAppService: FronteggAppService) {
    this.loadingSubscription = fronteggAppService.isLoading$.subscribe((isLoading) => this.isLoading = isLoading)
  }
  ngOnDestroy(): void {
    this.loadingSubscription.unsubscribe()
  }
}

把你的申请包起来 *ngIf="!isLoading" 选择器以确保您有正确的上下文

<!-- app.component.html -->

<div *ngIf="!isLoading">
    <router-outlet></router-outlet>
</div>

3. 了解用户背景

Frontegg通过 a 显示用户上下文和认证状态 FronteggAppService您可以通过 FronteggAppService. 获得纪念 用户状态、 SSO 状态、 MFA 状态等认证子状态使用 FronteggAuthService 如下所示: 样本 :

// app.component.ts
import { Component, OnInit, OnDestroy } from '@angular/core';
import { FronteggAuthService, FronteggAppService } from '@frontegg/angular';
import { Subscription } from 'rxjs';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss'],
})
export class AppComponent implements OnInit, OnDestroy {
  isLoading = true;
  loadingSubscription: Subscription;
  user?: any;

  constructor(
    private fronteggAuthService: FronteggAuthService, 
    private fronteggAppService: FronteggAppService) {
    this.loadingSubscription = 
      fronteggAppService.isLoading$.subscribe((isLoading) => this.isLoading = isLoading)
  }

  ngOnInit(): void {
    this.fronteggAuthService?.user$.subscribe((user) => {
      this.user = user
    })
  }

  ngOnDestroy(): void {
    this.loadingSubscription.unsubscribe()
  }
}

更新 app.component.html 显示用户名和外观:

<!-- app.component.html-->

<div *ngIf="!isLoading">
    <img src={{user?.profilePictureUrl}} alt={{user?.name}} />
    <div>User name: {{user?.name}}</div>
</div>

4. 在您的路由模块中添加 FronteggAuthGuard

使用 FronteggAuthGuard 如果用户未认证并试图到达私人路线,则将用户重定向到登录页面.

// app-routing.module.ts

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { ProtectedAppComponent } from './components/protected.component';
import { NotFoundComponent } from './components/not-found.component';
import { HomeComponent } from './components/home.component';
import { UsersComponent } from './components/users.component';
import { FronteggAuthGuard } from '@frontegg/angular';

/** Option to protect a specific route **/
const routes: Routes = [
  { path: '', component: HomeComponent },
  { path: 'test-private-route', canActivate: [FronteggAuthGuard], component: ProtectedAppComponent },
  { path: '**', component: NotFoundComponent },
]

/** Option to protect all routes **/
const routes: Routes = [
  {
    path: '',
    canActivate: [FronteggAuthGuard],
    children: [
      { path: '', component: HomeComponent },
      { path: 'users', component: UsersComponent },
      { path: '**', component: NotFoundComponent },
    ]
  },
]

@NgModule({
  declarations: [ProtectedAppComponent, HomeComponent, UsersComponent, NotFoundComponent],
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule],
})
export class AppRoutingModule {}

5. 运行 App, 注册和登录

我们都准备好了 让我们运行应用程序 并看到Frontegg行动.

npm run serve

好极了 Frontegg现在和你的应用软件结合了!

在您的应用程序中添加了登录和登录路径 :

注册屏幕将在http://localhost:4200/account/sign-up上公布

登录屏幕将在 http://localhost:4200/account/login 上显示

如果您已经登录, 请访问 http://localhost: 4200/ account/logout并登录出 .

通过注册和登录来尝试一下.

试试看! 开通http://localhost:8080/account/sign-up 与您的第一个用户签约.

Frontegg 管理员门户整合

为了让终端用户能够控制安全设置、配置、团队管理等等,下一步将 要嵌入 Admin Portal 在您的申请.

对于Frontegg 管理员门户集成,我们将导入FronteggAppService 从 frontegg-app 软件包和 使用情况 showAdminPortal 方法.

import { Component, OnInit } from '@angular/core';
import { FronteggAppService } from '@frontegg/angular';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss'],
})
export class AppComponent implements OnInit {

  constructor(private fronteggAppService: FronteggAppService) { }

  showApp(): void {
    this.fronteggAppService?.showAdminPortal()
  }
}
  1. 慢慢来!

版本与发布记录

@frontegg/angular 共发布 645 个版本,首次发布于 2021/06/15;过去 12 个月发布了 73 个版本。

版本发布日期距今
7.24.2latest2026/11/114 天前
7.24.2-alpha.43004133378next2026/11/114 天前
7.24.12026/10/2917 天前
7.24.1-alpha.408829558882026/10/2917 天前
7.24.02026/10/2521 天前
7.24.0-alpha.401865698172026/10/2521 天前

其他发布通道:alpha → 7.6.3-alpha.11951767369,next → 7.24.2-alpha.43004133378。

关于 @frontegg/angular 的常见问题

@frontegg/angular 是什么?

前额巨角 Frontegg是一个网络平台,其中

如何安装 @frontegg/angular?

在项目目录运行 npm install @frontegg/angular,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@angular/core(>=12.0.0)、@angular/common(>=12.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@frontegg/angular 支持 TypeScript 吗?

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

@frontegg/angular 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@frontegg/angular 可以商用吗?

@frontegg/angular 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@frontegg/angular 的下载量有多少?

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

@frontegg/angular 还在维护吗?

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