logologo
Bắt đầu
Hướng dẫn
Phát triển
Plugin
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Bắt đầu
Hướng dẫn
Phát triển
Plugin
API
logologo
Tổng quan API

@nocobase/auth

AuthManager
Auth
BaseAuth

@nocobase/cache

CacheManager
Cache

@nocobase/cli

Giao diện dòng lệnh NocoBase
Biến Môi Trường Toàn Cầu

@nocobase/client

Ứng dụng
Plugin

@nocobase/database

bộ sưu tập
Trường

interfaces

BaseInterface
Các Toán Tử Lọc

RelationRepository

BelongsToManyRepository
belongs-to-repository
HasManyRepository
HasOneRepository
Repository

shared

create-options
destroy-options
find-one
Bắt đầu với Bộ sưu tập
transaction
update-options

@nocobase/data-source-manager

DataSourceManager
DataSource (trừu tượng)
ICollectionManager
ICollection
IField
IModel
IRepository

@nocobase/flow-engine

Trình quản lý nguồn dữ liệu
Ngữ cảnh luồng
FlowEngine
FlowModel
Tài nguyên luồng

@nocobase/logger

Logger

@nocobase/server

AppCommand
Ứng dụng
AuditManager
Ngữ cảnh
Di chuyển
Plugin

@nocobase/sdk

Auth
Storage
Previous PageTổng quan API
Next PageAuth
TIP

Tài liệu này được dịch bởi AI. Đối với bất kỳ thông tin không chính xác nào, vui lòng tham khảo phiên bản tiếng Anh

#AuthManager

#Tổng quan

AuthManager là một module quản lý xác thực người dùng trong NocoBase, dùng để đăng ký các loại xác thực người dùng khác nhau.

#Cách sử dụng cơ bản

const authManager = new AuthManager({
  // Dùng để lấy định danh bộ xác thực hiện tại từ tiêu đề yêu cầu
  authKey: 'X-Authenticator',
});

// Thiết lập các phương thức để AuthManager lưu trữ và truy xuất bộ xác thực
authManager.setStorer({
  get: async (name: string) => {
    return db.getRepository('authenticators').find({ filter: { name } });
  },
});

// Đăng ký một loại xác thực
authManager.registerTypes('basic', {
  auth: BasicAuth,
  title: 'Password',
});

// Sử dụng middleware xác thực
app.resourceManager.use(authManager.middleware());

#Giải thích khái niệm

  • Loại xác thực (AuthType): Các phương thức xác thực người dùng khác nhau, ví dụ: mật khẩu, SMS, OIDC, SAML, v.v.
  • Bộ xác thực (Authenticator): Một thực thể của phương thức xác thực, được lưu trữ thực tế trong một bộ sưu tập, tương ứng với một bản ghi cấu hình của một AuthType nhất định. Một phương thức xác thực có thể có nhiều bộ xác thực, tương ứng với nhiều cấu hình, cung cấp các phương pháp xác thực người dùng khác nhau.
  • Định danh bộ xác thực (Authenticator name): Định danh duy nhất cho một bộ xác thực, được dùng để xác định phương thức xác thực mà yêu cầu hiện tại đang sử dụng.

#Phương thức lớp

#constructor()

Hàm khởi tạo, tạo một thể hiện (instance) của AuthManager.

#Chữ ký

  • constructor(options: AuthManagerOptions)

#Kiểu dữ liệu

export interface JwtOptions {
  secret: string;
  expiresIn?: string;
}

export type AuthManagerOptions = {
  authKey: string;
  default?: string;
  jwt?: JwtOptions;
};

#Chi tiết

#AuthManagerOptions
Thuộc tínhKiểuMô tảGiá trị mặc định
authKeystringTùy chọn, khóa trong tiêu đề yêu cầu chứa định danh bộ xác thực hiện tại.X-Authenticator
defaultstringTùy chọn, định danh bộ xác thực mặc định.basic
jwtJwtOptionsTùy chọn, có thể cấu hình nếu sử dụng JWT để xác thực.-
#JwtOptions
Thuộc tínhKiểuMô tảGiá trị mặc định
secretstringKhóa bí mật của tokenX-Authenticator
expiresInstringTùy chọn, thời gian hết hạn của token.7d

#setStorer()

Thiết lập các phương thức để lưu trữ và truy xuất dữ liệu bộ xác thực.

#Chữ ký

  • setStorer(storer: Storer)

#Kiểu dữ liệu

export interface Authenticator = {
  authType: string;
  options: Record<string, any>;
  [key: string]: any;
};

export interface Storer {
  get: (name: string) => Promise<Authenticator>;
}

#Chi tiết

#Authenticator
Thuộc tínhKiểuMô tả
authTypestringLoại xác thực
optionsRecord<string, any>Cấu hình liên quan đến bộ xác thực
#Storer

Storer là một giao diện để lưu trữ bộ xác thực, bao gồm một phương thức.

  • get(name: string): Promise<Authenticator> - Lấy một bộ xác thực bằng định danh của nó. Trong NocoBase, kiểu dữ liệu thực tế được trả về là AuthModel.

#registerTypes()

Đăng ký một loại xác thực.

#Chữ ký

  • registerTypes(authType: string, authConfig: AuthConfig)

#Kiểu dữ liệu

export type AuthExtend<T extends Auth> = new (config: Config) => T;

type AuthConfig = {
  auth: AuthExtend<Auth>; // Lớp xác thực.
  title?: string; // Tên hiển thị của loại xác thực.
};

#Chi tiết

Thuộc tínhKiểuMô tả
authAuthExtend<Auth>Triển khai loại xác thực, xem Auth
titlestringTùy chọn. Tiêu đề của loại xác thực này được hiển thị ở giao diện người dùng.

#listTypes()

Lấy danh sách các loại xác thực đã đăng ký.

#Chữ ký

  • listTypes(): { name: string; title: string }[]

#Chi tiết

Thuộc tínhKiểuMô tả
namestringĐịnh danh loại xác thực
titlestringTiêu đề loại xác thực

#get()

Lấy một bộ xác thực.

#Chữ ký

  • get(name: string, ctx: Context)

#Chi tiết

Thuộc tínhKiểuMô tả
namestringĐịnh danh bộ xác thực
ctxContextNgữ cảnh yêu cầu

#middleware()

Middleware xác thực. Lấy bộ xác thực hiện tại và thực hiện xác thực người dùng.