• Create login handler

    Parameters

    • userAPI: Pick<UserDefaultAdapterAPI, "checkUserPassword">

      injected API service use to handle the user related operations

      • checkUserPassword
    • twoFactorAuthService: undefined | TwoFactorAuthService

      injected service use to handle the two factor auth related operations

      • generateCode
      • sendMail
    • refreshTokenService: RefreshTokenService

      injected service use to handle the refresh token related operations

      • createRefreshToken
    • configuration: LoginHandlerConfiguration

      configuration for login handler

    • logger: Logger

      injected logger used to handle the logging

    • context: AdapterHandlerContext

      request context [headers, body, params, query].

    Returns Promise<CreateLoginHandlerResponse>

    200 Status Ok

    {
    accessToken: string;
    refreshToken?: string;
    userId: string;
    }

    Description

    This handler will create login by applying the following steps in sequence:

    1. Check user password (userService.checkUserPassword)

    2. Generate 2FA code if 2FA is enabled (twoFactorAuthService.generateCode)

    3. Send 2FA code to user email if 2FA is enabled (twoFactorAuthService.sendMail)

    4. Generate access token (crypto.generateUserAccessToken)

    5. Generate refresh token if refresh token is enabled (enableRefreshToken)

    6. Set access token and refresh token to cookie if auth type is cookie (setTokenToCookie)

    7. Return the response

    Throws

    401 NBError Unauthorized

    • email or password is wrong

    Throws

    500 NBError Internal Server Error

    • 2FA_code generate failed

Generated using TypeDoc