logologo
Начало
Руководство
Разработка
Плагины
API
Главная
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Начало
Руководство
Разработка
Плагины
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()

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