Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

BrowserID auth extension for Sinatra

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 example
Octocat-spinner-32 lib
Octocat-spinner-32 README.md
Octocat-spinner-32 sinatra-browserid.gemspec
README.md

Sinatra plugin that allows authentication against BrowserID. BrowserID lets you verify the email identity of a user.

To learn more, see how it works from a users perspective and from a developers perspective.

Note that BrowserID logins are not done from within a form on your site -- you provide a login button, and that will start up the BrowserID login flow (either via a pop-up or an in-browser widget).

How to get started:

require 'sinatra/base'
require 'sinatra/browserid'

module MyApp < Sinatra::Base
    register Sinatra::BrowserID

    set :browserid_login_button, :orange
    set :sessions, true

    get '/'
        if authorized?
            "Welcome, #{authorized_email}"
        else
            render_login_button
        end
    end

    get '/secure'
        authorize!                 # require a user be logged in

        email = authorized_email   # browserid email
        ...
    end

    get '/logout'
        logout!

        redirect '/'
    end
end

See the rdoc for more details on the helper functions. For a functioning example app, run rackup -p $PORT in the example directory.

Available sinatra settings:

  • :browserid_login_button: set to a color (:orange, :red, :blue, :green, :grey) or an image URL
  • :browserid_server: If you're using an alternate auth provider other than https://browserid.org
  • :browserid_login_url: URL users get redirected to when the authorize! helper is called and a user is not logged in

Still TODO:

  • better error handling
  • local assertion verification (eliminate callback)
Something went wrong with that request. Please try again.