GithubHelp home page GithubHelp logo

manveru / openmaize Goto Github PK

View Code? Open in Web Editor NEW

This project forked from riverrun/openmaize

0.0 3.0 0.0 182 KB

Authentication and authorization library for elixir

License: Other

Elixir 100.00%

openmaize's Introduction

Openmaize

Authentication and authorization library for Elixir

Openmaize is an authentication and authorization library for Elixir. It is still under heavy development and has had limited testing in production.

Goals

Openmaize aims to provide developers the following:

  • a secure, but lightweight, framework-agnostic authentication and authorization mechanism that is easy to use.
  • excellent documentation.

Installation

  1. Add openmaize to your mix.exs dependencies
defp deps do
  [ {:openmaize, "~> 0.7"} ]
end
  1. Run mix do deps.get, compile

Use

Before you use Openmaize, you need to make sure that your user model contains an id, name (which identifies the user) and role.

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

Openmaize provides the following main plugs:

  • Openmaize.LoginoutCheck
    • checks the path to see if it is for the login or logout page
    • handles login or logout if necessary
  • Openmaize.Authenticate
    • authenticates the user
    • sets (adds to the assigns map) the current_user variable
  • Openmaize.Authorize
    • checks to see if the user is authorized to access the page / resource

There is also the following plug, which can be used to perform an extra authorization check based on user id:

  • Openmaize.Authorize.IdCheck
    • checks to see if the user, based on id, is authorized to access the page / resource

See the relevant module documentation for more details.

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

TODO

  • Add customizable unique identifier for user model
    • currently the identifier is name -- allow developers to customize this
    • planned for when there is support for variables as Map keys -- Elixir 1.2
  • Add more plugs / checks
  • Add warning when not using https

License

BSD

openmaize's People

Contributors

riverrun avatar robinsound avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.