Special Middleware to use in at http API to provide an authentication for every request. The type-parameter P represents the principal information, which contains all login-information needed to authenticate against the external HTTP API. The principal information is held inside and available as flow by calling data. To use this Middleware you need to implement the addAuthentication method, where you get the principal information, when available, to add it to your requests. To implement the client side of authentication process you also need to implement the authenticate method in which you specify what is needed to authenticate the user (e.g. open up a login modal). When your authentication process is done you have to call the complete function and set your principal. Then all requests, that have been initialized while the authentication was running, will be re-executed with the additional authentication information provided by the addAuthentication method. When the user logs out you have to call the clear function to clear all authentication information.
Adds the authentication information to all requests by using the given principal.
implements the authentication process. E.g. opens up a login-modal or browsing to the login-page.
enriches requests with additional information. E.g. it could append special header-information, which are needed for authentication.
handles responses. E.g. it could handle specific status-codes and log error messages.
stops propagation of a response to the following Middlewares in the chain