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
Автентифікація
BaseAuth

@nocobase/cache

CacheManager
Кеш

@nocobase/cli

NocoBase CLI
Глобальні змінні середовища

@nocobase/client

application
Плагін

@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
FlowModel
Ресурс робочого процесу

@nocobase/logger

Логер

@nocobase/server

AppCommand
Застосунок
AuditManager
Контекст
Міграція
Плагін

@nocobase/sdk

Auth
Сховище
Previous PageОгляд API
Next PageАвтентифікація
Повідомлення про переклад ШІ

Ця документація була автоматично перекладена штучним інтелектом.

#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>; // The authentication class.
  title?: string; // The display name of the authentication type.
};

#Деталі

ВластивістьТипОпис
authAuthExtend<Auth>Реалізація типу автентифікації, див. Auth
titlestringНеобов'язково. Заголовок цього типу автентифікації, що відображається на інтерфейсі користувача.

#listTypes()

Отримує список зареєстрованих типів автентифікації.

#Підпис

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

#Деталі

ВластивістьТипОпис
namestringІдентифікатор типу автентифікації
titlestringЗаголовок типу автентифікації

#get()

Отримує автентифікатор.

#Підпис

  • get(name: string, ctx: Context)

#Деталі

ВластивістьТипОпис
namestringІдентифікатор автентифікатора
ctxContextКонтекст запиту

#middleware()

Проміжне ПЗ для автентифікації. Отримує поточний автентифікатор та виконує автентифікацію користувача.