UNPKG

realm-object-server

Version:

Realm Object Server

94 lines (93 loc) 3.21 kB
/// <reference types="node" /> import { Logger } from "../shared/Logger"; import { Server } from "../Server"; import { IService } from "../Service"; import { IAuthProvider } from "../auth"; import { ConfigurableServiceBase, ConfigurableServiceConfig } from "./ConfigurableServiceBase"; import { User } from "../realms"; import { StatsSink } from "../stats"; import { EventEmitter } from "events"; import { StrictEventEmitter } from "strict-event-emitter-types"; export interface AuthServiceConfiguration extends ConfigurableServiceConfig { enableRuntimeConfiguration?: boolean; refreshTokenTtl?: number; userTokenTtl?: number; accessTokenTtl?: number; allowAnyUserToRetrieveUserInfo?: boolean; } export interface IAuthProviderConfig { type: string; name?: string; config?: any; forceCodeConfig?: boolean; } export declare class AuthService extends ConfigurableServiceBase<AuthServiceConfiguration> { logger: Logger; server: Server; private privateKey; private refreshTokenTtl; private userTokenTtl; private accessTokenTtl; private cleanupInterval; private adminRealm; private tokenRevocationRealm; private realmDirectoryClient; private providers; private defaultProviders; private runtimeConfigurationEnabled; private allowAnyUserToRetrieveUserInfo; private authCounter; stats: StatsSink; constructor(config?: AuthServiceConfiguration); protected setConfigCore(config?: AuthServiceConfiguration): void; addProvider(provider: IAuthProvider): void; setDefaultProviders(providers: IAuthProviderConfig[]): void; getUserByProviderId(provider: string, providerId: string): User; createOrUpdateUser(providerId: string, provider: string, isAdmin: boolean, metadata?: { [key: string]: string; }, userId?: string): Promise<User>; updateUserMetadata(user: User | string, metadata?: { [key: string]: string; }): Promise<void>; private updateUserMetadataInTransaction; protected startCore(server: Server): Promise<void>; private stopping; protected stopCore(): Promise<void>; private authenticate; private userToken; private accessToken; private validateStatus; private revokeToken; private getUserById; private getUserByProviderIdApi; private createOrUpdateUserApi; private patchUserApi; private getProviders; private addOrUpdateProviderApi; private removeProviderApi; private updateProviderData; private updateProviderAccount; private deleteUser; private enhanceLog; private createProvider; private startProvider; private stopProvider; private pruneRevocationTokens; private readonly providerQueue; private hasPendingProviderOperations; private enqueueProviderOperation; private stopProviderQueue; private generateUniqueId; private requireAdminOrUserId; private requireRuntimeConfiguration; private deleteUserWithUserId; } interface AuthServiceEvents { userCreated: { user: User; totalUsers: number; }; } export interface AuthService extends StrictEventEmitter<EventEmitter, AuthServiceEvents>, IService { } export {};