Packages
blossom
0.6.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
def password_opts(opts, otp_app) do
config = Application.get_env(otp_app, Blossom, [])
%{
min_length: Auth.min_length(config, opts)
}
end
def token_opts(opts, otp_app) do
config = Application.get_env(otp_app, Blossom, [])
%{
audience: Utils.audience(config, opts, otp_app),
expiration: Utils.expiration(config, opts),
issuer: Auth.issuer(config, opts, otp_app),
secret: Utils.secret(config, opts)
}
end
defmacro __using__(opts \\ []) do
quote do
@opts unquote(opts)
@caller unquote(__CALLER__.module)
@name KilnCore.Utils.atom_name(@caller)
def validate_new_password(password) do
Passwords.validate(password, Auth.password_opts(@opts, @name))
end
def login(user, password) do
Builder.login(user, password, Auth.token_opts(@opts, @name))
end
def generate_password() do
Passwords.generate(Auth.password_opts(@opts, @name))
end
end
end
end