logologo
Начало
Руководство
Разработка
Плагины
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Начало
Руководство
Разработка
Плагины
API
logologo
Обзор API

@nocobase/auth

AuthManager
Auth
BaseAuth

@nocobase/cache

CacheManager
Кэш

@nocobase/cli

NocoBase CLI
Глобальные переменные окружения

@nocobase/client

Приложение
Плагин

@nocobase/database

Коллекция
Поле

interfaces

BaseInterface
Операторы фильтрации

RelationRepository

BelongsToManyRepository
belongs-to-repository
HasManyRepository
HasOneRepository
Репозиторий

shared

create-options
destroy-options
find-one
find-options
transaction
update-options

@nocobase/data-source-manager

DataSourceManager
DataSource (абстрактный)
ICollectionManager
ICollection
IField
IModel
IRepository

@nocobase/flow-engine

Менеджер источников данных
Контекст потока
FlowEngine
Модель потока
Ресурс рабочего процесса

@nocobase/logger

Логгер

@nocobase/server

AppCommand
Приложение
AuditManager
Контекст
Миграция
Плагин

@nocobase/sdk

Auth
Storage
Previous PageОбзор API
Next PageAuth
Уведомление о переводе ИИ

Эта документация была автоматически переведена ИИ.

#AuthManager

#Обзор

AuthManager — это модуль управления аутентификацией пользователей в NocoBase, предназначенный для регистрации различных типов аутентификации.

#Базовое использование

const authManager = new AuthManager({
  // Используется для получения идентификатора текущего аутентификатора из заголовка запроса
  authKey: 'X-Authenticator',
});

// Устанавливает методы для хранения и получения аутентификаторов в AuthManager
authManager.setStorer({
  get: async (name: string) => {
    return db.getRepository('authenticators').find({ filter: { name } });
  },
});

// Регистрирует тип аутентификации
authManager.registerTypes('basic', {
  auth: BasicAuth,
  title: 'Password',
});

// Использует промежуточное ПО для аутентификации
app.resourceManager.use(authManager.middleware());

#Концепции

  • Тип аутентификации (AuthType): Различные методы аутентификации пользователей, например: пароль, SMS, OIDC, SAML и т.д.
  • Аутентификатор (Authenticator): Сущность метода аутентификации, которая фактически хранится в коллекции и соответствует записи конфигурации определённого типа аутентификации (AuthType). Один метод аутентификации может иметь несколько аутентификаторов, соответствующих различным конфигурациям, предоставляя разные способы аутентификации пользователей.
  • Идентификатор аутентификатора (Authenticator name): Уникальный идентификатор аутентификатора, используемый для определения метода аутентификации для текущего запроса.

#Методы класса

#constructor()

Конструктор, создаёт экземпляр AuthManager.

#Подпись

  • constructor(options: AuthManagerOptions)

#Типы

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

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

#Подробности

#AuthManagerOptions
СвойствоТипОписаниеПо умолчанию
authKeystringНеобязательно, ключ в заголовке запроса, содержащий идентификатор текущего аутентификатора.X-Authenticator
defaultstringНеобязательно, идентификатор аутентификатора по умолчанию.basic
jwtJwtOptionsНеобязательно, можно настроить, если используется JWT для аутентификации.-
#JwtOptions
СвойствоТипОписаниеПо умолчанию
secretstringСекрет токенаX-Authenticator
expiresInstringНеобязательно, время жизни токена.7d

#setStorer()

Устанавливает методы для хранения и получения данных аутентификатора.

#Подпись

  • setStorer(storer: Storer)

#Типы

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

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

#Подробности

#Authenticator
СвойствоТипОписание
authTypestringТип аутентификации
optionsRecord<string, any>Конфигурация, связанная с аутентификатором
#Storer

Storer — это интерфейс для хранения аутентификаторов, содержащий один метод.

  • get(name: string): Promise<Authenticator> — Получает аутентификатор по его идентификатору. В NocoBase фактический возвращаемый тип — AuthModel.

#registerTypes()

Регистрирует тип аутентификации.

#Подпись

  • registerTypes(authType: string, authConfig: AuthConfig)

#Типы

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

type AuthConfig = {
  auth: AuthExtend<Auth>; // Класс аутентификации.
  title?: string; // Отображаемое имя типа аутентификации.
};

#Подробности

СвойствоТипОписание
authAuthExtend<Auth>Реализация типа аутентификации, см. Auth
titlestringНеобязательно. Заголовок этого типа аутентификации, отображаемый во фронтенде.

#listTypes()

Получает список зарегистрированных типов аутентификации.

#Подпись

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

#Подробности

СвойствоТипОписание
namestringИдентификатор типа аутентификации
titlestringЗаголовок типа аутентификации

#get()

Получает аутентификатор.

#Подпись

  • get(name: string, ctx: Context)

#Подробности

СвойствоТипОписание
namestringИдентификатор аутентификатора
ctxContextКонтекст запроса

#middleware()

Промежуточное ПО для аутентификации. Получает текущий аутентификатор и выполняет аутентификацию пользователя.