Page Contents

Home > @loopback/authentication

authentication package

A LoopBack 4 component for authentication support.

Remarks

The core logic for the authentication layer in LoopBack 4.

It contains:

  • A decorator to express an authentication requirement on controller methods - A provider to access method-level authentication metadata - An action in the REST sequence to enforce authentication - An extension point to discover all authentication strategies and handle the delegation

Classes

Class Description
AuthenticateActionProvider Provides the authentication action for a sequence
AuthenticationComponent  
AuthenticationMiddlewareProvider  
AuthenticationStrategyProvider An authentication strategy provider responsible for resolving an authentication strategy by name.It declares an extension point to which all authentication strategy implementations must register themselves as extensions.
AuthMetadataProvider Provides authentication metadata of a controller method

Functions

Function Description
authenticate(strategies) Mark a controller method as requiring authenticated user.
getAuthenticateMetadata(targetClass, methodName) Fetch authentication metadata stored by @authenticate decorator.
getAuthenticationMetadataForStrategy(metadata, strategyName) Get the authentication metadata object for the specified strategy.
registerAuthenticationStrategy(context, strategyClass) Registers an authentication strategy as an extension of the AuthenticationBindings.AUTHENTICATION_STRATEGY_EXTENSION_POINT_NAME extension point.

Interfaces

Interface Description
AuthenticateFn interface definition of a function which accepts a request and returns an authenticated user
AuthenticationMetadata Authentication metadata stored via Reflection API
AuthenticationOptions Options for authentication component
AuthenticationStrategy An interface that describes the common authentication strategy.An authentication strategy is a class with an ‘authenticate’ method that verifies a user’s credentials and returns the corresponding user profile.
TokenService An interface for generating and verifying a token
UserIdentityService The User Identity service links a user to profiles from an external source (eg: ldap, oauth2 provider, saml) which can identify the user. The profile typically has the following information: name, email-id, uuid, roles, authorizations, scope of accessible resources, expiration time for given access
UserProfileFactory interface definition of a factory function which accepts a user definition and returns the user profile
UserService A service for performing the login action in an authentication strategy.Usually a client user uses basic credentials to login, or is redirected to a third-party application that grants limited access.Note: The creation of user is handled in the user controller by calling user repository APIs. For Basic auth, the user has to register first using some endpoint like /register. For 3rd-party auth, the user will be created if login is successful and the user doesn’t exist in database yet.Type C stands for the type of your credential object.- For local strategy:A typical credential would be: { username: username, password: password }- For oauth strategy:A typical credential would be: { clientId: string; clientSecret: string; callbackURL: string; }It could be read from a local configuration file in the app- For saml strategy:A typical credential would be:{ path: string; issuer: string; entryPoint: string; }It could be read from a local configuration file in the app.

Namespaces

Namespace Description
authenticate  
AuthenticationBindings Binding keys used by this component.

Variables

Variable Description
asAuthStrategy A binding template for auth strategy contributor extensions
AUTHENTICATION_METADATA_CLASS_KEY The key used to store class-level metadata for @authenticate
AUTHENTICATION_METADATA_KEY Alias for AUTHENTICATION_METADATA_METHOD_KEY to keep it backward compatible
AUTHENTICATION_METADATA_METHOD_KEY The key used to store method-level metadata for @authenticate
AUTHENTICATION_STRATEGY_NOT_FOUND  
USER_PROFILE_NOT_FOUND