Giter Site home page Giter Site logo

passport's Introduction

Passport

Passport is a ready to use authentication library for Phoenix. Using Passport is as easy as just running this simple command $ mix passport.install

Passport is designed to have minimal code hidden behind the library and expose all the controllers, templates and views in your project with some default values.

Passport is WIP. Bug reports and wish list from users are most welcome!

Installation

  1. Add passport to your list of dependencies in mix.exs:

    def deps do [{:passport, "~> 0.0.4"}] end

  2. $ mix do deps.get, compile

  3. $ mix passport.install

  4. Follow the instruction shown on the screen to complete the installation

    Use Passport in your web/router.ex
        use Passport

    add the plug `:current_user` in your browser pipeline
        pipeline :browser do
          ...
          plug :current_user
        end
        
    Add the following routes to your browser scope in web/router.ex:

        get "/login", SessionController, :new
        post "/login", SessionController, :create
        get "/logout", SessionController, :delete
        get "/register", RegistrationController, :new
        post "/register", RegistrationController, :create
        get "/forget-password", PasswordController, :forget_password
        post "/reset-password", PasswordController, :reset_password

    Add Passport configuration in your config.exs like below:
        config :passport,
          resource: #{binding[:module]},
          repo: #{binding[:base]}.Repo

    Optionally, in your navigation you may to include this:

          <ul>
            <%= if @current_user do %>
              <li><%= @current_user.email %></li>
              <li><%= link "Log out", to: session_path(@conn, :delete) %>
            <% else %>
              <li><%= link "Login", to: session_path(@conn, :new) %></li>
              <li><%= link "Register", to: registration_path(@conn, :new) %></li>
            <% end %>
          </ul>

Example

  1. $ git clone [email protected]:opendrops/passport.git

  2. $ cd passport/example_app

  3. $ mix do deps.get, compile

  4. $ mix phoenix.server

Go to http://localhost:4000 for a demo.

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.