/// import { ParsedRequest } from '@loopback/core'; import { Provider } from '@loopback/context'; import { Strategy } from 'passport'; /** * interface definition of a function which accepts a request * and returns an authenticated user */ export interface AuthenticateFn { (request: ParsedRequest): Promise; } /** * interface definition of a user profile * http://openid.net/specs/openid-connect-core-1_0.html#StandardClaims */ export interface UserProfile { id: string; name?: string; email?: string; } /** * @description Provider of a function which authenticates * @example `context.bind('authentication_key') * .toProvider(AuthenticationProvider)` */ export declare class AuthenticationProvider implements Provider { readonly strategy: Strategy; constructor(strategy: Strategy); /** * @returns authenticateFn */ value(): AuthenticateFn; } /** * @description a function which accepts (passport-strategy, request) * and returns a user * @param strategy Passport strategy * @param request Parsed Request * * @example * ```ts * const strategy = new BasicStrategy(async (username, password) => { * return await findUser(username, password); * }; * getAuthenticatedUser(strategy, ParsedRequest); * ``` */ export declare function getAuthenticatedUser(strategy: Strategy, request: ParsedRequest): Promise;