@jvhaile/loopback4-helper
Version:
Helper components and tools for loopback 4.
32 lines (31 loc) • 1.82 kB
TypeScript
/// <reference types="express" />
import { AuthenticationMetadata, AuthenticationStrategy } from '@loopback/authentication';
import { Getter } from '@loopback/core';
import { Request } from '@loopback/rest';
import { securityId, UserProfile } from '@loopback/security';
import { AuthenticationService } from "./services/authentication.service";
import { BaseUserRepository } from "./repositories/base.user.repository";
import { BaseSessionRepository } from "./repositories/base.session.repository";
import { BaseClientRepository } from "./repositories/base.client.repository";
import { BaseClient } from "./models/base.client.model";
import { BaseSession } from "./models/base.session.model";
import { BaseUser } from "./models/base.user.model";
export declare type CurrentUser<U extends BaseUser = BaseUser, C extends BaseClient = BaseClient, S extends BaseSession = BaseSession> = {
[securityId]: string;
client: C;
user: U;
session: S;
};
export declare class AuthStrategy implements AuthenticationStrategy {
readonly authenticationService: AuthenticationService;
readonly getMetaData: Getter<AuthenticationMetadata>;
readonly userRepository: BaseUserRepository;
readonly clientRepository: BaseClientRepository;
readonly sessionRepository: BaseSessionRepository;
readonly name = "remit";
constructor(authenticationService: AuthenticationService, getMetaData: Getter<AuthenticationMetadata>, userRepository: BaseUserRepository, clientRepository: BaseClientRepository, sessionRepository: BaseSessionRepository);
getMeta(): Promise<AuthenticationMetadata | null>;
authenticate(request: Request): Promise<UserProfile | undefined>;
validateClient(apiKey: any): Promise<BaseClient>;
extractTokenFromHeader(request: Request): string;
}