Openmaize v0.19.2 Openmaize.Config

This module provides an abstraction layer for configuration.

The following are valid configuration items.

nametypedefault
user_modelmoduleN/A
repomoduleN/A
db_modulemoduleOpenmaize.DB
hash_nameatom:password_hash
crypto_modmoduleComeonin.Bcrypt
password_strengthkeyword list[]

The values for user_model and repo should be module names. If, for example, your app is called Coolapp and your user model is called User, then user_model should be Coolapp.User and repo should be Coolapp.Repo.

Examples

The simplest way to change the default values would be to add an openmaize entry to the config.exs file in your project, like the following example.

config :openmaize,
  user_model: Coolapp.User,
  repo: Coolapp.Repo,
  db_module: Coolapp.DB,
  hash_name: :encrypted_password,
  crypto_mod: Comeonin.Bcrypt,
  password_strength: [min_length: 12]

Summary

Functions

The password hashing and checking algorithm. Bcrypt is the default. You can supply any module. Module must implement the following functions: hashpwsalt/1 hashes the password dummy_checkpw/0 performs a hash and returns false checkpw/2 given a password and a salt, returns if match See Comeonin.Bcrypt for example

The name of the database module

The name in the database for the password hash

Options for the password strength check

The repo name

The user model name

Functions

crypto_mod()

The password hashing and checking algorithm. Bcrypt is the default. You can supply any module. Module must implement the following functions: hashpwsalt/1 hashes the password dummy_checkpw/0 performs a hash and returns false checkpw/2 given a password and a salt, returns if match See Comeonin.Bcrypt for example.

db_module()

The name of the database module.

You only need to set this value if you plan on overriding the the functions in the Openmaize.DB module. If you are using Ecto, you will probably not need to set this value.

hash_name()

The name in the database for the password hash.

password_strength()

Options for the password strength check.

The basic check will just check the minimum length, which is 8 characters by default. For a more advanced check, you need to have the optional dependency NotQwerty123 installed.

Advanced password strength check

If you have NotQwerty123 installed, there are three options:

  • min_length - the minimum length of the password
  • extra_chars - check for punctuation characters (including spaces) and digits
  • common - check to see if the password is too common (too easy to guess)

See the documentation for Openmaize.Password for more information about these options.

Examples

In the following example, the password strength check will set the minimum length to 16 characters and will skip the extra_chars check:

password_strength: [min_length: 16, extra_chars: false]
repo()

The repo name.

user_model()

The user model name.