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

Автентифікація користувача

Огляд
Керування автентифікаторами

Типи автентифікації

Пароль
SMS

OIDC

Налаштування

Приклади

Вхід через Google
Вхід через Microsoft

SAML

Налаштування

Приклади

Вхід через Google
LDAP
CAS
WeChat Work
DingTalk
Ключ API

Посібник розробника

Розширення типів автентифікації
Довідник API

Верифікація

Огляд

Типи верифікації

SMS
Автентифікатор TOTP

Посібник розробника

Розширення типів верифікації
Розширення сценаріїв верифікації
Розширення SMS-провайдерів
Довідник API
Двофакторна автентифікація (2FA)
Previous PageРозширення типів автентифікації
Next PageОгляд
Повідомлення про переклад ШІ

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

#Довідка з API

#Серверна частина

#Auth

Ядровий API, довідка: Auth

#BaseAuth

Ядровий API, довідка: BaseAuth

#AuthModel

#Огляд

AuthModel — це модель даних автентифікатора (Authenticator), яка використовується в застосунках NocoBase (див. AuthManager - setStorer та Auth - constructor). Вона надає методи для взаємодії з таблицею даних користувачів. Крім того, ви можете використовувати методи, що надаються моделлю Sequelize.

import { AuthModel } from '@nocobase/plugin-auth';

class CustomAuth extends BaseAuth {
  async validate() {
    // ...
    const authenticator = this.authenticator as AuthModel;
    this.authenticator.findUser();
    this.authenticator.newUser();
    this.authenticator.findOrCreateUser();
    // ...
  }
}

#Методи класу

  • findUser(uuid: string): UserModel — Запитує користувача за uuid.

    • uuid — Унікальний ідентифікатор користувача для поточного типу автентифікації.
  • newUser(uuid: string, userValues?: any): UserModel — Створює нового користувача та прив'язує його до поточного автентифікатора за допомогою uuid.

    • uuid — Унікальний ідентифікатор користувача для поточного типу автентифікації.
    • userValues — Необов'язково. Інша інформація про користувача. Якщо не передано, uuid буде використано як нікнейм користувача.
  • findOrCreateUser(uuid: string, userValues?: any): UserModel — Знаходить або створює нового користувача. Правила створення такі ж, як описано вище.

    • uuid — Унікальний ідентифікатор користувача для поточного типу автентифікації.
    • userValues — Необов'язково. Інша інформація про користувача.

#Клієнтська частина

#plugin.registerType()

Реєструє клієнт для типу автентифікації.

import AuthPlugin from '@nocobase/plugin-auth/client';

class CustomAuthPlugin extends Plugin {
  async load() {
    const auth = this.app.pm.get(AuthPlugin);
    auth.registerType('custom-auth-type', {
      components: {
        SignInForm,
        // SignInButton
        SignUpForm,
        AdminSettingsForm,
      },
    });
  }
}

#Сигнатура

  • registerType(authType: string, options: AuthOptions)

#Тип

export type AuthOptions = {
  components: Partial<{
    SignInForm: ComponentType<{ authenticator: AuthenticatorType }>;
    SignInButton: ComponentType<{ authenticator: AuthenticatorType }>;
    SignUpForm: ComponentType<{ authenticatorName: string }>;
    AdminSettingsForm: ComponentType;
  }>;
};

#Деталі

  • SignInForm — Форма входу
  • SignInButton — Кнопка входу (стороннього сервісу), може використовуватися як альтернатива формі входу.
  • SignUpForm — Форма реєстрації
  • AdminSettingsForm — Форма налаштувань адміністратора

#Route

Плагін автентифікації реєструє наступні фронтенд-маршрути:

  • Макет автентифікації

    • name: auth
    • path: -
    • component: AuthLayout
  • Сторінка входу

    • name: auth.signin
    • path: /signin
    • component: SignInPage
  • Сторінка реєстрації

    • name: auth.signup
    • path: /signup
    • component: SignUpPage