GenAuth DocsDocuments
Concepts
User Guide
Development Integration
AgentAuth
Metadata
Development Integration
Multi-tenant (beta)
Console Documentation
Multi-tenant Console
Tenant Console
Saas Application Demo
Concepts
User Guide
Development Integration
AgentAuth
Metadata
Development Integration
Multi-tenant (beta)
Console Documentation
Multi-tenant Console
Tenant Console
Saas Application Demo
Old version
  • Single Page Web Application

    • Javascript
    • React
    • Vue
    • Angular
  • Mobile and Client Applications

  • Standard Web Application

  • Framework Integration

  • Others

  1. Development Integration
  2. /
  3. Single Page Web Application
  4. /
  5. Angular

¶ Angular 登录组件

Update time: 2025-07-23 07:34:21
Edit

GenAuth 登录组件(Guard)是一种可嵌入的登录表单,可根据你的需求进行配置,建议用于单页面应用程序。它使你可以轻松添加各种社会化登录方式,以便你的用户可以无缝登录,并且在不同平台拥有一致的登录体验。Guard 为开发者屏蔽了很多底层认证的实现细节,同时也包括繁琐的 UI 开发。

Guard 可以通过组件化的形式集成到你的 Angular 项目中,你可以借助此组件快速实现登录认证流程。

查看旧版 Angular 文档

¶ 快速开始

¶ 使用 npm

¶ 安装

$ yarn add @authing/ng-ui-components

# OR

$ npm install @authing/ng-ui-components --save

¶ 初始化

首先需要在项目的 tsconfig.json 里面的 compilerOptions 添加:

"skipLibCheck": true

在 Angular 项目中初始化:

  1. app.module.ts
import { NgModule } from "@angular/core";
import { BrowserModule } from "@angular/platform-browser";

import { AppRoutingModule } from "./app-routing.module";
import { AppComponent } from "./app.component";

import { GuardModule } from "@authing/ng-ui-components";

@NgModule({
  declarations: [AppComponent],
  imports: [BrowserModule, AppRoutingModule, GuardModule],
  providers: [],
  bootstrap: [AppComponent],
})
export class AppModule {}
  1. app.component.ts
import { Component } from "@angular/core";
import { CommonMessage, AuthenticationClient } from "ng-ui-components";
@Component({
  selector: "app-root",
  templateUrl: "./app.component.html",
  styleUrls: ["./app.component.scss"],
})
export class AppComponent {
  appId = "GEN_AUTH_APP_ID";
  onLoad([e]: [AuthenticationClient]) {
    console.log("onLoad", e);
  }
}
  1. app.component.html
<guard [appId]="appId" (onLoad)="onLoad($event)"></guard>

¶ 使用 CDN

¶ 使用 CDN 引入

<script src="https://cdn.jsdelivr.net/npm/@authing/ng-ui-components"></script>

¶ 在 Script 代码块中初始化

<div ng-app="">
  <guard [appId]="GEN_AUTH_APP_ID"></guard>
</div>

¶ 监听登录事件

guard 组件传入 onLogin 事件回调函数,当用户成功登录时回调用此函数,你可以在此获取当前用户的用户信息。查看完整事件列表。

<guard [appId]="appId" (onLogin)="onLogin($event)"></guard>
import { AuthenticationClient } from "@authing/ng-ui-components";

import { User } from "@authing/native-js-ui-components";

export class AppComponent {
  appId = "GEN_AUTH_APP_ID";
  onLogin([user]: [User, AuthenticationClient]) {
    console.log("userInfo: ", user);
  }
}
了解获取用户信息之后该怎么做?

After obtaining the user information, you can get the user's identity credentials (the token field of the user information). You can carry this token in the subsequent request sent by the client to the backend server. Take axios as an example:

const axios = require("axios");
axios
  .get({
    url: "https://yourdomain.com/api/v1/your/resources",
    headers: {
      Authorization: "Bearer ID_TOKEN",
    },
  })
  .then((res) => {
    // custom codes
  });

In the backend interface, you need to check the legitimacy of this token to verify the user's identity. For details on the verification method, please see Verify User Identity Credentials (token). After identifying the user, you may also need to manage permissions for the user to determine whether the user has permission to operate the API.

¶ 添加社会化登录

在初始化参数 config 中传入 socialConnections 列表指定需要显示的社会化登录(默认显示该应用配置的所有社会化登录)。

<guard [appId]="appId" [config]="config"></guard>
export class AppComponent {
  appId = "GEN_AUTH_APP_ID";
  config = { socialConnections: ["github"] };
}
查看支持的社会化登录列表及接入流程

GenAuth 目前一共支持国内外将近 20 余种社会化登录,如微信、GitHub、Sign in with Apple、支付宝等,以下是完整的列表:

Social Login MethodUsage ScenarioDocumentation
PC WeChat QR CodePC WebsiteDocumentation
WeChat MobileMobile APPDocumentation
WeChat Web AuthorizationWeChat Web PageDocumentation
WeChat Official Account ScanningPC WebsiteDocumentation
WeChat Mini ProgramWeChat Mini ProgramDocumentation (opens new window)
WeChat PC Mini Program QR CodePC WebsiteDocumentation
WeChat Mini Program App LaunchMobile APPDocumentation
Tencent QQPC WebsiteDocumentation
Tencent QQ MobileMobile APPDocumentation
Sina WeiboPC WebsiteDocumentation
Sina Weibo MobileMobile APPDocumentation
GitHubPC WebsiteDocumentation
GitHub MobileMobile APPDocumentation
FacebookPC WebsiteDocumentation
Facebook MobileMobile APPDocumentation
TwitterPC WebsiteDocumentation
Twitter MobileMobile APPDocumentation
Google WebPC WebsiteDocumentation
Google MobileMobile APPDocumentation
Apple WebPC WebsiteDocumentation
Apple MobileMobile APPDocumentation
Alipay WebPC WebsiteDocumentation
Alipay MobileMobile APPDocumentation
SlackPC WebsiteDocumentation
Slack MobileMobile APPDocumentation
GiteePC WebsiteDocumentation
GitLabPC WebsiteDocumentation
GitLab MobileMobile APPDocumentation
BaiduPC WebsiteDocumentation
Baidu MobileMobile APPDocumentation
LinkedInPC WebsiteDocumentation
LinkedIn MobileMobile APPDocumentation
NetEase Yidun (One-click Login)Mobile APPDocumentation
QingCloudPC WebsiteDocumentation
InstagramPC WebsiteDocumentation
Douyin MobileMobile APPDocumentation
Douyin Mini ProgramMobile APPDocumentation (opens new window)
Kuaishou MobileMobile APPDocumentation
Xiaomi MobileMobile APPDocumentation
Line MobileMobile APPDocumentation

¶ 退出登录

  1. 在项目入口文件中初始化 AuthenticationClient。
import { initAuthClient } from "@authing/ng-ui-components";

initAuthClient({
  appId: "GEN_AUTH_APP_ID",
});
  1. 添加一个退出登录的 button 组件,并绑定点击事件为 getAuthClient().logout()。
<button (click)="logout()">退出登录</button>
import { initAuthClient } from "@authing/react-ui-components";

export class AppComponent {
  logout() {
    getAuthClient().logout();
  }
}

¶ 实现单点登录

使用 Guard 进行单点登录只需要初始化的时候设置 isSSO 为 true 即可:

<guard [appId]="appId" [config]="config"></guard>
export class AppComponent {
  appId = "GEN_AUTH_APP_ID";
  config = { isSSO: true };
}

¶ 导出 authing-js-sdk

Guard 组件本身基于 GenAuth JavaScript SDK 进行封装,当你需要进行一些更高级的操作(如管理用户自定义数据、修改用户资料、退出登录)时:

  1. 调用 initAuthClient 初始化 AuthenticationClient,多次调用此函数只会初始化一次。
import { initAuthClient } from "@authing/ng-ui-components";

initAuthClient({
  appId: "GEN_AUTH_APP_ID",
});
  1. 之后使用 getAuthClient 获取 AuthenticationClient 实例。
import { getAuthClient } from "@authing/ng-ui-components";

const authClient = getAuthClient();
  1. 调用 AuthenticationClient 实例的方法,完整方法列表请见 AuthenticationClient 方法列表。
authClient.getCurrentUser().then((user) => console.log(user));

¶ 完整参数

GenAuth 登录组件(Guard)提供了很多高级配置,如自定义 UI,使用特定登录方式等。详细请见完整参数列表。

¶ 事件列表

事件名事件说明事件参数事件参数说明
loadGenAuth appId 验证通过,加载完成authClientAuthenticationClient 对象,可直接操作 login, register,详情请查看 authing-js-sdk
load-errorGenAuth appId 验证失败,加载失败error错误信息
login用户登录成功user, authClient

user: 用户信息

authClient 同上

login-error用户登录失败error错误信息,包含字段缺失/非法或服务器错误等信息
register用户注册成功user, authClient

user: 用户信息

authClient 同上

register-error用户注册失败error错误信息,包含字段缺失/非法或服务器错误等信息
pwd-email-send忘记密码邮件发送成功--
pwd-email-send-error忘记密码邮件发送失败error错误信息
pwd-phone-send忘记密码手机验证码发送成功--
pwd-phone-send-error忘记密码手机验证码发送失败error错误信息
pwd-reset重置密码成功--
pwd-reset-error重置密码失败error错误信息
closemodal 模式中 guard 关闭事件--
login-tab-change登录 tab 切换事件activeTab切换后的 tab
register-tab-change注册 tab 切换事件activeTab切换后的 tab
register-info-completed注册补充成功事件user, udfs, authClient

user: 用户信息

udfs: 补充的自定义字段信息

authClient 同上

register-info-completed-error注册补充失败事件error, udfs, authClient

error: 错误信息

udfs: 补充的自定义字段信息

authClient 同上

¶ 私有化部署

私有化部署场景需要指定你私有化的 GenAuth 服务的 GraphQL 端点(不带协议头和 Path),如果你不清楚可以联系 GenAuth IDaaS 服务管理员。

<guard [appId]="appId" [config]="config"></guard>
export class AppComponent {
  appId = "GEN_AUTH_APP_ID";
  config = { host: "https://core.you-authing-service.com" };
}

¶ 获取帮助

请访问 GenAuth 论坛 (opens new window)。

Previous article: Vue Next article: Mobile and Client Applications
  • 快速开始
  • 导出 authing-js-sdk
  • 完整参数
  • 事件列表
  • 私有化部署
  • 获取帮助

User identity management

Integrated third-party login
Customized authentication process

Enterprise internal management

Single sign-on
Multi-factor authentication
Permission management

Developer

Development Documentation
GitHub (opens new window)

Company

official@genauth.ai
16th Floor, Building B, Beichen Century Center, Chaoyang District, Beijing (Total)
Room 406, 4th Floor, Block B, No. 200, Tianfu Fifth Street, High-tech Zone, Chengdu (Branch)

© Beijing Steamory Technology Co., Ltd.