Packages
blossom
0.4.0
0.29.3
0.29.2
0.29.1
0.29.0
0.28.0
0.27.3
0.27.2
0.27.1
0.27.0
0.26.3
0.26.2
0.26.1
0.26.0
0.25.3
0.25.2
0.25.1
0.25.0
0.24.1
0.24.0
0.23.5
0.23.4
0.23.3
0.23.2
0.23.1
0.23.0
0.22.1
0.22.0
0.21.8
0.21.7
0.21.6
0.21.5
0.21.4
0.21.3
0.21.2
0.21.1
0.21.0
0.20.4
0.20.3
0.20.2
0.20.1
0.20.0
0.19.5
0.19.4
0.19.3
0.19.2
0.19.1
0.19.0
0.18.1
0.18.0
0.17.4
0.17.3
0.17.2
0.17.1
0.17.0
0.16.0
0.15.2
0.15.1
0.15.0
0.14.0
0.13.0
0.12.2
0.12.1
0.12.0
0.11.0
0.10.1
0.10.0
0.9.2
0.9.1
0.9.0
0.8.0
0.7.0
0.6.2
0.6.1
0.6.0
0.5.1
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0
Easy identity for easy authentication
Current section
Files
Jump to
Current section
Files
lib/blossom/auth.ex
defmodule Blossom.Auth do
alias Blossom.{Auth, Passwords, Utils}
alias Blossom.Builders.Auth, as: Builder
def issuer(config, opts, otp_app) do
Utils.option_or_key_config(config, opts, :issuer, otp_app)
end
def min_length(config, opts) do
Utils.option_or_key_config(config, opts, :min_length, 8)
end
defmacro __using__(opts \\ []) do
quote do
@opts unquote(opts)
@caller unquote(__CALLER__.module)
@name KilnCore.Utils.atom_name(@caller)
@config Application.compile_env(@name, Blossom, [])
@password_opts %{
min_length: Auth.min_length(@config, @opts)
}
@token_opts %{
audience: Utils.audience(@config, unquote(opts), @name),
expiration: Utils.expiration(@config, unquote(opts)),
issuer: Auth.issuer(@config, unquote(opts), @name),
secret: Utils.secret(@config, unquote(opts))
}
def validate_new_password(password) do
Passwords.validate(password, @password_opts)
end
def login(user, password) do
Builder.login(user, password, @token_opts)
end
end
end
end