Authorizes a user and returns token for accesing the API. The user must already exist in the system.
The returned token can be JWT or 2FA short lived JWT, depends if 2fa is enabled on the user account.
If the request has a valid Bearer Token with 2FA Long lived JWT and 2FA is enabled, returns JWT and user data.
If the request has not the Bearer Token with 2FA Long lived JWT but the 2FA is enabled, returns a short lived JWT.