realm-object-server
Version:
94 lines (93 loc) • 3.21 kB
TypeScript
/// <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 {};