Package io.vertx.ext.auth.otp.hotp

## Interface HotpAuth

- All Superinterfaces:
    `AuthenticationProvider`

      public interface HotpAuth
      extends AuthenticationProvider

  An extension of AuthProvider which uses the one time passwords based on counter to perform authentication.
  Author:
    Dmitry Novikov

- - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `HotpAuth` | `authenticatorFetcher​(Function<String,​Future<Authenticator>> fetcher)` | Provide a `Function` that can fetch `Authenticator`s from a backend given an `identifier` argument.
    `HotpAuth` | `authenticatorUpdater​(Function<Authenticator,​Future<Void>> updater)` | Provide a `Function` that can update or insert a `Authenticator`.
    `static HotpAuth` | `create()` | Creates an instance of HotpAuth.
    `static HotpAuth` | `create​(HotpAuthOptions hotpAuthOptions)` | Creates an instance of HotpAuth.
    `Future<Authenticator>` | `createAuthenticator​(String id, OtpKey otpKey)` | Creating authenticator from user id and key.
    `default String` | `generateUri​(OtpKey otpKey, String label)` | Creating URI for register in key in user device.
    `default String` | `generateUri​(OtpKey otpKey, String issuer, String user)` | Creating URI for register in key in user device.
    `String` | `generateUri​(OtpKey otpKey, String issuer, String user, String label)` | Creating URI for register in key in user device.

    - ### Methods inherited from interface io.vertx.ext.auth.authentication.AuthenticationProvider

      `authenticate`

- - ### Method Detail

    - #### authenticatorFetcher

          HotpAuth authenticatorFetcher​(Function<String,​Future<Authenticator>> fetcher)

      Provide a `Function` that can fetch `Authenticator`s from a backend given an `identifier` argument.

      The function signature is as follows:

      `(id) -> Future<Authenticator>`

      - `id` the identifier to lookup.
      - `Future` async result with a authenticator.
      Parameters:
        `fetcher` - fetcher function.
      Returns:
        fluent self.

    - #### authenticatorUpdater

          HotpAuth authenticatorUpdater​(Function<Authenticator,​Future<Void>> updater)

      Provide a `Function` that can update or insert a `Authenticator`. The function should store a given authenticator to a persistence storage.

      When an authenticator is already present, this method must at least update `Authenticator.getCounter()`, and is not required to perform any other update.

      For new authenticators, the whole object data must be persisted.

      The function signature is as follows:

      `(Authenticator) -> Future<Void>`

      - `Authenticator` the authenticator data to update.
      - `Future`async result of the operation.
      Parameters:
        `updater` - updater function.
      Returns:
        fluent self.

    - #### createAuthenticator

          Future<Authenticator> createAuthenticator​(String id,
                                                    OtpKey otpKey)

      Creating authenticator from user id and key.
      Parameters:
        `id` - id user.
        `otpKey` - key of user used for auth.
      Returns:
        `Authenticator` an object containing all the necessary information to authenticate a user.

    - #### generateUri

          String generateUri​(OtpKey otpKey,
                             String issuer,
                             String user,
                             String label)

      Creating URI for register in key in user device.
      Parameters:
        `otpKey` - user key.
        `issuer` - issuer of key.
        `user` - display name of user account.
        `label` - the label to identify which account a key is associated with.
      Returns:
        uri containing the key.

    - #### generateUri

          default String generateUri​(OtpKey otpKey,
                                     String issuer,
                                     String user)

      Creating URI for register in key in user device.
      Parameters:
        `otpKey` - user key.
        `issuer` - issuer of key.
        `user` - display name of user account.
      Returns:
        uri containing the key.

    - #### generateUri

          default String generateUri​(OtpKey otpKey,
                                     String label)

      Creating URI for register in key in user device.
      Parameters:
        `otpKey` - user key.
        `label` - the label to identify which account a key is associated with.
      Returns:
        uri containing the key.

    - #### create

          static HotpAuth create()

      Creates an instance of HotpAuth.
      Returns:
        the created instance of `HotpAuth`.

    - #### create

          static HotpAuth create​(HotpAuthOptions hotpAuthOptions)

      Creates an instance of HotpAuth.
      Parameters:
        `hotpAuthOptions` - the config.
      Returns:
        the created instance of `HotpAuth`.