KI-Übersetzungshinweis

Diese Dokumentation wurde automatisch von KI übersetzt.

AuthManager

Überblick

AuthManager ist das Modul zur Benutzerauthentifizierungsverwaltung in NocoBase. Es dient dazu, verschiedene Benutzerauthentifizierungstypen zu registrieren.

Grundlegende Verwendung

const authManager = new AuthManager({
  // Wird verwendet, um den Bezeichner des aktuellen Authentifikators aus dem Anfrage-Header abzurufen.
  authKey: 'X-Authenticator',
});

// Legt die Methoden für den AuthManager fest, um Authentifikatoren zu speichern und abzurufen.
authManager.setStorer({
  get: async (name: string) => {
    return db.getRepository('authenticators').find({ filter: { name } });
  },
});

// Registriert einen Authentifizierungstyp.
authManager.registerTypes('basic', {
  auth: BasicAuth,
  title: 'Password',
});

// Verwendet die Authentifizierungs-Middleware.
app.resourceManager.use(authManager.middleware());

Konzepte

  • Authentifizierungstyp (AuthType): Verschiedene Methoden zur Benutzerauthentifizierung, wie zum Beispiel: Passwort, SMS, OIDC, SAML usw.
  • Authentifikator (Authenticator): Die Entität einer Authentifizierungsmethode, die tatsächlich in einer Sammlung gespeichert wird und einem Konfigurationseintrag eines bestimmten Authentifizierungstyps (AuthType) entspricht. Eine Authentifizierungsmethode kann mehrere Authentifikatoren haben, die jeweils unterschiedlichen Konfigurationen entsprechen und verschiedene Benutzerauthentifizierungsmethoden bereitstellen.
  • Authentifikator-Bezeichner (Authenticator name): Der eindeutige Bezeichner für einen Authentifikator, der verwendet wird, um die Authentifizierungsmethode für die aktuelle Anfrage zu bestimmen.

Klassenmethoden

constructor()

Konstruktor, der eine AuthManager-Instanz erstellt.

Signatur

  • constructor(options: AuthManagerOptions)

Typen

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

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

Details

AuthManagerOptions
EigenschaftTypBeschreibungStandardwert
authKeystringOptional, der Schlüssel im Anfrage-Header, der den Bezeichner des aktuellen Authentifikators enthält.X-Authenticator
defaultstringOptional, der Standard-Authentifikator-Bezeichner.basic
jwtJwtOptionsOptional, kann konfiguriert werden, wenn JWT für die Authentifizierung verwendet wird.-
JwtOptions
EigenschaftTypBeschreibungStandardwert
secretstringToken-SchlüsselX-Authenticator
expiresInstringOptional, die Gültigkeitsdauer des Tokens.7d

setStorer()

Legt die Methoden zum Speichern und Abrufen von Authentifikator-Daten fest.

Signatur

  • setStorer(storer: Storer)

Typen

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

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

Details

Authenticator
EigenschaftTypBeschreibung
authTypestringAuthentifizierungstyp
optionsRecord<string, any>Authentifikator-bezogene Konfiguration
Storer

Storer ist die Schnittstelle für die Authentifikator-Speicherung und enthält eine Methode.

  • get(name: string): Promise<Authenticator> - Ruft einen Authentifikator über seinen Bezeichner ab. In NocoBase ist der tatsächlich zurückgegebene Typ AuthModel.

registerTypes()

Registriert einen Authentifizierungstyp.

Signatur

  • registerTypes(authType: string, authConfig: AuthConfig)

Typen

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

type AuthConfig = {
  auth: AuthExtend<Auth>; // Die Authentifizierungsklasse.
  title?: string; // Der Anzeigename des Authentifizierungstyps.
};

Details

EigenschaftTypBeschreibung
authAuthExtend<Auth>Die Implementierung des Authentifizierungstyps, siehe Auth.
titlestringOptional. Der Titel dieses Authentifizierungstyps, der im Frontend angezeigt wird.

listTypes()

Ruft die Liste der registrierten Authentifizierungstypen ab.

Signatur

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

Details

EigenschaftTypBeschreibung
namestringBezeichner des Authentifizierungstyps
titlestringTitel des Authentifizierungstyps

get()

Ruft einen Authentifikator ab.

Signatur

  • get(name: string, ctx: Context)

Details

EigenschaftTypBeschreibung
namestringAuthentifikator-Bezeichner
ctxContextAnfrage-Kontext

middleware()

Authentifizierungs-Middleware. Ruft den aktuellen Authentifikator ab und führt die Benutzerauthentifizierung durch.