Packages
openmaize
2.9.0
3.0.1
retired
3.0.0
2.9.0
2.8.0
2.7.0
2.6.0
2.5.1
2.5.0
2.4.0
2.3.2
2.3.1
2.3.0
2.2.0
2.1.5
2.1.4
2.1.3
2.1.2
2.1.1
2.1.0
2.0.2
2.0.1
2.0.0
1.0.1
1.0.0
1.0.0-beta.5
1.0.0-beta.4
1.0.0-beta.3
1.0.0-beta.2
1.0.0-beta.1
1.0.0-beta.0
0.19.3
0.19.2
0.19.1
0.19.0
0.18.1
0.18.0
0.17.2
0.17.1
0.17.0
0.16.2
0.16.1
0.16.0
0.15.1
0.15.0
0.14.0
0.13.0
0.12.0
0.11.1
0.11.0
0.10.2
0.10.1
0.10.0
0.8.1
0.8.0
0.7.5
0.7.4
0.7.2
0.7.1
0.7.0
0.6.7
0.6.6
0.6.3
0.6.2
0.6.1
0.6.0
0.5.0
0.4.1
0.4.0
Authentication library for Elixir using Plug
Current section
Files
Jump to
Current section
Files
lib/openmaize/password.ex
defmodule Openmaize.Password do
@moduledoc """
Check the password is valid, and optionally, check the password is
strong enough.
The functions in this module can be called directly, and they are
also used by the Openmaize.ResetPassword plug.
To perform the more advanced password strength checks, you need to
have NotQwerty123 installed.
## Basic checks
The basic check just checks that the password is a string and that it
is more than a certain amount of characters long, 8 characters by default.
The following command is an example of how you can call `valid_password?`
checking that the password is at least 12 characters long:
Openmaize.Password.valid_password?(password, 12)
## Password strength checks
If you have NotQwerty123 installed, in addition to the minimum length
check, the password check will verify that the password is not similar
to any word in a customizable common passwords list. See the documentation
for NotQwerty123 for more details.
"""
if Code.ensure_loaded?(NotQwerty123) do
def valid_password?(password, min_len \\ 8)
def valid_password?(password, min_len) when is_binary(password) do
case NotQwerty123.PasswordStrength.strong_password?(password, min_length: min_len) do
true -> {:ok, password}
message -> {:error, message}
end
end
def valid_password?(_, _), do: {:error, "The password should be a string"}
else
def valid_password?(password, min_len \\ 8)
def valid_password?(password, min_len) when is_binary(password) do
String.length(password) >= min_len and
{:ok, password} || {:error, "The password is too short. At least #{min_len} characters."}
end
def valid_password?(_, _), do: {:error, "The password should be a string"}
end
end