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

@nocobase/auth

AuthManager
Auth
BaseAuth

@nocobase/cache

CacheManager
Cache

@nocobase/cli

NocoBase CLI
Variabel Lingkungan Global

@nocobase/client

Aplikasi
plugin

@nocobase/database

Koleksi
Bidang

interfaces

BaseInterface
Operator Filter

RelationRepository

BelongsToManyRepository
belongs-to-repository
HasManyRepository
HasOneRepository
Repositori

shared

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

@nocobase/data-source-manager

DataSourceManager
DataSource (abstrak)
ICollectionManager
ICollection
IField
IModel
IRepository

@nocobase/flow-engine

Manajer Sumber Data
FlowContext
FlowEngine
FlowModel
Sumber Daya Alur Kerja

@nocobase/logger

Logger

@nocobase/server

AppCommand
Aplikasi
AuditManager
Konteks
Migrasi
Plugin

@nocobase/sdk

Auth
Penyimpanan
Previous PageIkhtisar API
Next PageAuth
TIP

Dokumen ini diterjemahkan oleh AI. Untuk ketidakakuratan apa pun, silakan lihat versi bahasa Inggris

#AuthManager

#Ikhtisar

AuthManager adalah modul manajemen autentikasi pengguna di NocoBase, yang digunakan untuk mendaftarkan berbagai jenis autentikasi pengguna.

#Penggunaan Dasar

const authManager = new AuthManager({
  // Digunakan untuk mendapatkan pengenal autentikator saat ini dari header permintaan
  authKey: 'X-Authenticator',
});

// Mengatur metode untuk AuthManager dalam menyimpan dan mengambil autentikator
authManager.setStorer({
  get: async (name: string) => {
    return db.getRepository('authenticators').find({ filter: { name } });
  },
});

// Mendaftarkan jenis autentikasi
authManager.registerTypes('basic', {
  auth: BasicAuth,
  title: 'Password',
});

// Menggunakan middleware autentikasi
app.resourceManager.use(authManager.middleware());

#Konsep

  • Jenis Autentikasi (AuthType): Berbagai metode autentikasi pengguna, seperti kata sandi, SMS, OIDC, SAML, dll.
  • Autentikator (Authenticator): Entitas untuk metode autentikasi, yang sebenarnya disimpan dalam sebuah koleksi, sesuai dengan catatan konfigurasi dari AuthType tertentu. Satu metode autentikasi dapat memiliki beberapa autentikator, yang sesuai dengan beberapa konfigurasi, menyediakan berbagai metode autentikasi pengguna.
  • Pengenal Autentikator (Authenticator name): Pengenal unik untuk autentikator, yang digunakan untuk menentukan metode autentikasi yang digunakan oleh permintaan saat ini.

#Metode Kelas

#constructor()

Konstruktor, membuat sebuah instans AuthManager.

#Tanda Tangan

  • constructor(options: AuthManagerOptions)

#Tipe

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

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

#Detail

#AuthManagerOptions
PropertiTipeDeskripsiNilai Default
authKeystringOpsional, kunci di header permintaan yang menyimpan pengenal autentikator saat ini.X-Authenticator
defaultstringOpsional, pengenal autentikator default.basic
jwtJwtOptionsOpsional, dapat dikonfigurasi jika menggunakan JWT untuk autentikasi.-
#JwtOptions
PropertiTipeDeskripsiNilai Default
secretstringKunci rahasia tokenX-Authenticator
expiresInstringOpsional, waktu kedaluwarsa token.7d

#setStorer()

Mengatur metode untuk menyimpan dan mengambil data autentikator.

#Tanda Tangan

  • setStorer(storer: Storer)

#Tipe

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

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

#Detail

#Authenticator
PropertiTipeDeskripsi
authTypestringJenis autentikasi
optionsRecord<string, any>Konfigurasi terkait autentikator
#Storer

Storer adalah antarmuka untuk penyimpanan autentikator, yang berisi satu metode.

  • get(name: string): Promise<Authenticator> - Mendapatkan autentikator berdasarkan pengenalnya. Di NocoBase, tipe yang sebenarnya dikembalikan adalah AuthModel.

#registerTypes()

Mendaftarkan jenis autentikasi.

#Tanda Tangan

  • registerTypes(authType: string, authConfig: AuthConfig)

#Tipe

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

type AuthConfig = {
  auth: AuthExtend<Auth>; // Kelas autentikasi.
  title?: string; // Nama tampilan dari jenis autentikasi.
};

#Detail

PropertiTipeDeskripsi
authAuthExtend<Auth>Implementasi jenis autentikasi, lihat Auth
titlestringOpsional. Judul jenis autentikasi ini yang ditampilkan di frontend.

#listTypes()

Mendapatkan daftar jenis autentikasi yang terdaftar.

#Tanda Tangan

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

#Detail

PropertiTipeDeskripsi
namestringPengenal jenis autentikasi
titlestringJudul jenis autentikasi

#get()

Mendapatkan autentikator.

#Tanda Tangan

  • get(name: string, ctx: Context)

#Detail

PropertiTipeDeskripsi
namestringPengenal autentikator
ctxContextKonteks permintaan

#middleware()

Middleware autentikasi. Mendapatkan autentikator saat ini dan melakukan autentikasi pengguna.