• Create onetime login handler

    Parameters

    • userAPI: Pick<UserDefaultAdapterAPI, "getUserById">

      injected API service use to handle the user related operations

      • getUserById
    • oAuthTokenDataService: OAuthTokenDataService
    • refreshTokenService: RefreshTokenService

      injected service use to handle the refresh token related operations

      • createRefreshToken
    • configuration: OnetimeLoginHandlerConfiguration

      configuration for onetime login handler

      • authSecrets authentication secrets
      • authType: Auth type
      • cookieConfig Cookie configuration
      • enableRefreshToken Enable refresh token
      • tokenExpireTime Token expire time configuration
    • logger: Logger

      injected logger used to handle the logging

    • context: AdapterHandlerContext

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

    Returns Promise<adapter.AdapterHandlerResponse>

    200 Status Ok

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

    Description

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

    1. Check onetime token (onetimeTokenService.checkTokenValidate)

    2. Check correct purpose in onetime token.

    3. Check if user exists.

    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

    403 NBError Forbidden

    • incorrect onetime purpose

    Throws

    403 NBError Forbidden

    • user for onetime-token not found

Generated using TypeDoc