Openmaize Build StatusDeps Status

Authentication library for Elixir

Upgrading to the newest version

There have been a few changes in the newest versions, 1.0.0-beta. Please check the UPGRADE_1.0.md guide in this directory for details.

Goals

Openmaize is an authentication library that aims to be:

It should work with any application that uses Plug, but it has only been tested with the Phoenix Web Framework.

Installation

  1. Add openmaize to your mix.exs dependencies
  defp deps do
    [{:openmaize, "~> 1.0"},
    {:openmaize_jwt, "~> 0.12"}]
  end
  1. List :openmaize as an application dependency
  def application do
    [applications: [:logger, :openmaize, :openmaize_jwt]]
  end
  1. Run mix do deps.get, compile

Use

Before you use Openmaize, you need to make sure that you have a module that implements the Openmaize.Database behaviour. If you are using Ecto, you can generate the necessary files by running the following command:

mix openmaize.gen.ectodb

To generate modules to handle authorization, and optionally email confirmation, run the following command:

mix openmaize.gen.phoenixauth

You then need to configure Openmaize. For more information, see the documentation for the Openmaize.Config module.

Migrating from Devise

Follow the above instructions for generating database and authorization modules, and then add the following lines to the config file:

config :openmaize,
  hash_name: :encrypted_password

Some of the functions in the Authorize module depend on a role being set for each user. If you are not using roles, you will need to edit these functions before use.

Features

See the relevant module documentation for more details.

Using with Phoenix

You can generate an example Authorize module and / or a Confirm module by running the command mix openmaize.gen.phoenixauth.

There is an example of Openmaize being used with Phoenix at Openmaize-phoenix.

License

BSD