Passwordless is an Elixir library for generating and redeeming one-time tokens.
These tokens can be used as a layer in a Multi-Factor Authentication (MFA) scenario or in place of user passwords in a Single-Factor Authentication (SFA) scenario. See: 360 million reasons to destroy all passwords.
- Add
passwordlessto your list of dependencies inmix.exs:
```elixir
defp deps, do: [{:passwordless, "~> 0.1.0"}]
```
- Ensure
passwordlessis started before your application:
```elixir
def application, do: [applications: [:passwordless]]
```
defp send_token(user) do
user.id
|> Passwordless.generate_login_token()
|> email_login_link(user)
enddefp create_session(token) do
case Passwordless.redeem(token) do
{:ok, user_id} -> MyApp.log_in(user_id)
:error -> MyApp.handle_expired_token(token)
end
end