AshAuthentication.Strategy.Otp.DefaultGenerator (ash_authentication v5.0.0-rc.5)

Copy Markdown View Source

Default OTP code generator.

Generates random codes from a configurable character set and length. Also provides normalize/1 for case-insensitive matching.

Ambiguous characters are excluded to avoid confusion when users read and type codes:

  • Letters removed: I (looks like 1/l), L (looks like 1/I), O (looks like 0), S (looks like 5), Z (looks like 2)
  • Digits removed: 0 (looks like O), 1 (looks like I/l), 2 (looks like Z), 5 (looks like S)

Summary

Functions

Generate a random OTP code.

Normalize an OTP code for comparison.

Functions

generate(opts \\ [])

@spec generate(keyword()) :: String.t()

Generate a random OTP code.

Options:

  • :length - the length of the code (default: 6)
  • :characters - the character set to use (default: :unambiguous_uppercase) Supported values: :unambiguous_uppercase, :unambiguous_alphanumeric, :digits_only, :uppercase_letters_only

normalize(code)

@spec normalize(String.t()) :: String.t()

Normalize an OTP code for comparison.

Trims whitespace and converts to uppercase.