Prerequisites

The main idea of this project is to create application which manages user's profiles and its bunch of back-end and front-end are configured
via configuration of back-end. So if certain properties are changed on back-end side, then front-end is changed in appropriate way
to match configuration of back-end. One of such configured flows is Login flow which is described in this documentation.

Login flow 1st step

An ability to login into the system can be performed in several different ways depending on configuration of backend.
Default configuration allows to perform login:

Login via third-parties (Facebook, Google etc.) can be disabled for the system. In such case
there are no appropriate buttons on front-end and also back-end doesn't process requests for appropriate endpoints.

To disable desired option, e.g. Facebook, an appropriate property must be set to desired value in application.yaml 
in section systemBehaviorConfiguration/oauth2. For Facebook it's systemBehaviorConfiguration/oauth2/facebook 
and the value false.

As mentioned above, such changes lead to changing of system's behavior both on front-end and back-end sides.

Changes on front-endChanges on back-end
If login option disabled, then
an appropriate button disappears
from login page
If login option disabled, then
endpoint for appropriate option (e.g. /api/v1/login/facebook)
isn't registered, so an attempt to reach it leads to error
with the message "No handler."


Listed login options can be enabled or disabled in any combinations.
If you want to add another third-party for login flow, please, refer to the article sign in/up with social networks.


If you have any questions regarding login flow or any other questions, feel free to contact Diakonov Serhii (s.dyakonov@knubisoft.com) or Kostenko Vadym (v.kostenko@knubisoft.com)