zibri
    Preparing search index...

    Interface for an auth service.

    interface AuthServiceInterface {
        belongsTo: <TargetEntity extends Newable<BaseEntity>>(
            request: HttpRequest,
            allowedStrategies: AuthStrategies,
            targetEntity: TargetEntity,
            targetUserIdKey: keyof InstanceType<TargetEntity>,
            targetIdParamKey: string,
        ) => Promise<boolean>;
        checkAccess: (
            controllerClass: Newable<unknown>,
            controllerMethod: string,
            req: HttpRequest,
        ) => Promise<void>;
        confirmPasswordReset: <
            Role extends string,
            UserType extends BaseUser<Role>,
            AuthDataType,
            CredentialsType,
            RequestPasswordResetDataType,
            ConfirmPasswordResetDataType,
            RefreshLoginDataType,
        >(
            strategy: Newable<
                AuthStrategyInterface<
                    Role,
                    UserType,
                    AuthDataType,
                    CredentialsType,
                    RequestPasswordResetDataType,
                    ConfirmPasswordResetDataType,
                    RefreshLoginDataType,
                >,
            >,
            data: ConfirmPasswordResetDataType,
        ) => void | Promise<void>;
        getCurrentUser: <
            Role extends string,
            UserType extends BaseUser<Role>,
            B extends boolean = true,
        >(
            request: HttpRequest,
            strategies: AuthStrategies,
            required: B,
        ) => Promise<B extends false ? undefined | UserType : UserType>;
        hasRole: (
            request: HttpRequest,
            allowedStrategies: AuthStrategies,
            allowedRoles: string[],
        ) => Promise<boolean>;
        init: (strategies: AuthStrategies) => void | Promise<void>;
        isLoggedIn: (
            request: HttpRequest,
            allowedStrategies: AuthStrategies,
        ) => Promise<boolean>;
        login: <
            Role extends string,
            UserType extends BaseUser<Role>,
            AuthDataType,
            CredentialsType,
            RequestPasswordResetDataType,
            ConfirmPasswordResetDataType,
            RefreshLoginDataType,
        >(
            strategy: Newable<
                AuthStrategyInterface<
                    Role,
                    UserType,
                    AuthDataType,
                    CredentialsType,
                    RequestPasswordResetDataType,
                    ConfirmPasswordResetDataType,
                    RefreshLoginDataType,
                >,
            >,
            credentials: CredentialsType,
        ) => Promise<AuthDataType>;
        refreshLogin: <
            Role extends string,
            UserType extends BaseUser<Role>,
            AuthDataType,
            CredentialsType,
            RequestPasswordResetDataType,
            ConfirmPasswordResetDataType,
            RefreshLoginDataType,
        >(
            strategy: Newable<
                AuthStrategyInterface<
                    Role,
                    UserType,
                    AuthDataType,
                    CredentialsType,
                    RequestPasswordResetDataType,
                    ConfirmPasswordResetDataType,
                    RefreshLoginDataType,
                >,
            >,
            data: RefreshLoginDataType,
        ) => Promise<AuthDataType>;
        requestPasswordReset: <
            Role extends string,
            UserType extends BaseUser<Role>,
            AuthDataType,
            CredentialsType,
            RequestPasswordResetDataType,
            ConfirmPasswordResetDataType,
            RefreshLoginDataType,
        >(
            strategy: Newable<
                AuthStrategyInterface<
                    Role,
                    UserType,
                    AuthDataType,
                    CredentialsType,
                    RequestPasswordResetDataType,
                    ConfirmPasswordResetDataType,
                    RefreshLoginDataType,
                >,
            >,
            data: RequestPasswordResetDataType,
        ) => void | Promise<void>;
        resolveBelongsToMetadata: (
            controllerClass: Newable<unknown>,
            controllerMethod: string,
        ) =>
            | undefined
            | BelongsToMetadata<Newable<BaseEntity>>
            | Promise<undefined | BelongsToMetadata<Newable<BaseEntity>>>;
        resolveHasRoleMetadata: (
            controllerClass: Newable<unknown>,
            controllerMethod: string,
        ) => undefined | HasRoleMetadata | Promise<undefined | HasRoleMetadata>;
        resolveIsLoggedInMetadata: (
            controllerClass: Newable<unknown>,
            controllerMethod: string,
        ) =>
            | undefined
            | IsLoggedInMetadata
            | Promise<undefined | IsLoggedInMetadata>;
        resolveIsNotLoggedInMetadata: (
            controllerClass: Newable<unknown>,
            controllerMethod: string,
        ) =>
            | undefined
            | IsNotLoggedInMetadata
            | Promise<undefined | IsNotLoggedInMetadata>;
        strategies: AuthStrategies;
    }

    Implemented by

    Index

    Properties

    belongsTo: <TargetEntity extends Newable<BaseEntity>>(
        request: HttpRequest,
        allowedStrategies: AuthStrategies,
        targetEntity: TargetEntity,
        targetUserIdKey: keyof InstanceType<TargetEntity>,
        targetIdParamKey: string,
    ) => Promise<boolean>

    Checks whether the currently logged in user belongs to the target entity.

    checkAccess: (
        controllerClass: Newable<unknown>,
        controllerMethod: string,
        req: HttpRequest,
    ) => Promise<void>

    Checks if the provided method on the provided controller can be accessed by the current user.

    confirmPasswordReset: <
        Role extends string,
        UserType extends BaseUser<Role>,
        AuthDataType,
        CredentialsType,
        RequestPasswordResetDataType,
        ConfirmPasswordResetDataType,
        RefreshLoginDataType,
    >(
        strategy: Newable<
            AuthStrategyInterface<
                Role,
                UserType,
                AuthDataType,
                CredentialsType,
                RequestPasswordResetDataType,
                ConfirmPasswordResetDataType,
                RefreshLoginDataType,
            >,
        >,
        data: ConfirmPasswordResetDataType,
    ) => void | Promise<void>

    Confirms a new password for a user using the provided auth strategy and confirm password reset data.

    getCurrentUser: <
        Role extends string,
        UserType extends BaseUser<Role>,
        B extends boolean = true,
    >(
        request: HttpRequest,
        strategies: AuthStrategies,
        required: B,
    ) => Promise<B extends false ? undefined | UserType : UserType>

    Get's the currently logged in user. When required is set to false this can return undefined.

    hasRole: (
        request: HttpRequest,
        allowedStrategies: AuthStrategies,
        allowedRoles: string[],
    ) => Promise<boolean>

    Checks whether the currently logged in user has one of the provided roles.

    init: (strategies: AuthStrategies) => void | Promise<void>

    Initializes the service.

    isLoggedIn: (
        request: HttpRequest,
        allowedStrategies: AuthStrategies,
    ) => Promise<boolean>

    Checks whether there is a currently logged in user.

    login: <
        Role extends string,
        UserType extends BaseUser<Role>,
        AuthDataType,
        CredentialsType,
        RequestPasswordResetDataType,
        ConfirmPasswordResetDataType,
        RefreshLoginDataType,
    >(
        strategy: Newable<
            AuthStrategyInterface<
                Role,
                UserType,
                AuthDataType,
                CredentialsType,
                RequestPasswordResetDataType,
                ConfirmPasswordResetDataType,
                RefreshLoginDataType,
            >,
        >,
        credentials: CredentialsType,
    ) => Promise<AuthDataType>

    Logs in a user using the provided auth strategy and credentials.

    refreshLogin: <
        Role extends string,
        UserType extends BaseUser<Role>,
        AuthDataType,
        CredentialsType,
        RequestPasswordResetDataType,
        ConfirmPasswordResetDataType,
        RefreshLoginDataType,
    >(
        strategy: Newable<
            AuthStrategyInterface<
                Role,
                UserType,
                AuthDataType,
                CredentialsType,
                RequestPasswordResetDataType,
                ConfirmPasswordResetDataType,
                RefreshLoginDataType,
            >,
        >,
        data: RefreshLoginDataType,
    ) => Promise<AuthDataType>

    Refreshes the login of a user using the provided auth strategy and refresh login data.

    requestPasswordReset: <
        Role extends string,
        UserType extends BaseUser<Role>,
        AuthDataType,
        CredentialsType,
        RequestPasswordResetDataType,
        ConfirmPasswordResetDataType,
        RefreshLoginDataType,
    >(
        strategy: Newable<
            AuthStrategyInterface<
                Role,
                UserType,
                AuthDataType,
                CredentialsType,
                RequestPasswordResetDataType,
                ConfirmPasswordResetDataType,
                RefreshLoginDataType,
            >,
        >,
        data: RequestPasswordResetDataType,
    ) => void | Promise<void>

    Request a new password for a user using the provided auth strategy and request password reset data.

    resolveBelongsToMetadata: (
        controllerClass: Newable<unknown>,
        controllerMethod: string,
    ) =>
        | undefined
        | BelongsToMetadata<Newable<BaseEntity>>
        | Promise<undefined | BelongsToMetadata<Newable<BaseEntity>>>

    Resolves the belongs to metadata for the provided controller method. (Whether it's required for the user to somehow belong to the requested entity, etc.).

    resolveHasRoleMetadata: (
        controllerClass: Newable<unknown>,
        controllerMethod: string,
    ) => undefined | HasRoleMetadata | Promise<undefined | HasRoleMetadata>

    Resolves the has role metadata for the provided controller method. (Whether it's required for the user to have a certain role etc.).

    resolveIsLoggedInMetadata: (
        controllerClass: Newable<unknown>,
        controllerMethod: string,
    ) =>
        | undefined
        | IsLoggedInMetadata
        | Promise<undefined | IsLoggedInMetadata>

    Resolves the is logged in metadata for the provided controller method. (Whether it's required to be logged in, etc.).

    resolveIsNotLoggedInMetadata: (
        controllerClass: Newable<unknown>,
        controllerMethod: string,
    ) =>
        | undefined
        | IsNotLoggedInMetadata
        | Promise<undefined | IsNotLoggedInMetadata>

    Resolves the is not logged in metadata for the provided controller method. (Whether it's required to be logged out, etc.).

    strategies: AuthStrategies

    The different auth strategies provided.