Openmaize v2.1.0 Openmaize.OnetimePass

Module to handle one-time passwords for use in two factor authentication.

There is one option to set the database module used:

  • db_module - the module that is used to query the database

    • the default is MyApp.OpenmaizeEcto - the name of the module generated by mix openmaize.gen.ectodb
    • if you implement your own database module, it needs to implement the Openmaize.Database behaviour

There are also the following options for the one-time passwords:

  • HMAC-based one-time passwords

    • token_length - the length of the one-time password
    • the default is 6
    • last - the count when the one-time password was last used
    • this count needs to be stored server-side
    • window - the number of future attempts allowed
    • the default is 3
  • Time-based one-time passwords

    • token_length - the length of the one-time password
    • the default is 6
    • interval_length - the length of each timed interval
    • the default is 30 (seconds)
    • window - the number of attempts, before and after the current one, allowed
    • the default is 1 (1 interval before and 1 interval after)

See the documentation for the Comeonin.Otp module for more details about generating and verifying one-time passwords.

Examples

Add the following line to your controller to call OnetimePass with the default values:

plug Openmaize.OnetimePass when action in [:login_twofa]

And to set the token length to 8 characters:

plug Openmaize.OnetimePass, [token_length: 8] when action in [:login_twofa]

Summary

Functions

Handle the one-time password POST request

Callback implementation for c:Plug.init/1

Functions

call(conn, arg)

Handle the one-time password POST request.

If the one-time password check is successful, the user will be added to the session.

init(opts)

Callback implementation for c:Plug.init/1.