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 Model.

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 — Форма настроек администратора.

#Маршруты

Плагин аутентификации регистрирует следующие клиентские маршруты:

  • Макет аутентификации

    • name: auth
    • path: -
    • component: AuthLayout
  • Страница входа

    • name: auth.signin
    • path: /signin
    • component: SignInPage
  • Страница регистрации

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