Packages

Provides authentication for phoenix applications

Current section

Files

Jump to
passport priv templates passport.install model.ex
Raw

priv/templates/passport.install/model.ex

defmodule <%= module %> do
use <%= base %>.Web, :model
alias Passport.Password
schema <%= inspect plural %> do
field :email, :string
field :password, :string, virtual: true
field :password_hash, :string
timestamps
end
def changeset(model, params \\ :empty) do model
|> cast(params, ~w(email), [])
|> validate_length(:email, min: 1, max: 150)
|> unique_constraint(:email)
end
def registration_changeset(model, params) do model
|> changeset(params)
|> cast(params, ~w(password), [])
|> validate_length(:password, min: 6, max: 100)
|> put_hashed_password()
end
defp put_hashed_password(changeset) do
case changeset do
%Ecto.Changeset{valid?: true, changes: %{password: pass}} ->
put_change(changeset, :password_hash, Password.hash(pass))
_ ->
changeset
end
end
end