README.md in sinatra-g_auth-0.0.2 vs README.md in sinatra-g_auth-0.0.3

- old
+ new

@@ -1,25 +1,80 @@ -# SinatraGAuth +# Sinatra::GAuth -TODO: Write a gem description +Quickly add Google Apps authentication to any Sintra app. ## Installation Add this line to your application's Gemfile: - gem 'sinatra_g_auth' + gem 'sinatra-g_auth', require: 'sinatra/g_auth' And then execute: $ bundle Or install it yourself as: - $ gem install sinatra_g_auth + $ gem install sinatra-g_auth ## Usage -TODO: Write usage instructions here +Configure the settings and register the extension to get up and running. + +````ruby +class App < Sinatra::Base + set :gauth_domain, 'example.org' # set this to your google apps domain + set :gauth_tmp_dir, './tmp' # path to a directory that's writable by your web process + set :gauth_redirect, '/' # where to redirect users after they've authenticated + register Sinatra::GAuth # add the sinatra extension to your stack + + get '/protected' do + protect_with_gauth! # add this to any route you want protected + # ... + end +end +```` + +Once the user has authenticated with google, some basic information is added to the session: + +````ruby + session[:_gauth][:id] # => google ID + session[:_gauth][:name] # => user's full name + session[:_gauth][:email] # => google apps email address +```` + +If attempting to add `protect_with_gauth!` to a before filter, be sure to skip paths that begin with `/auth`: + +````ruby + before(%r{^(?!(\/auth))}) do + protect_with_gauth! + end +```` + +This extension will enable sessions, but does not configure a session store. Do that with the middleware of your choice (e.g. `Rack::Session::Cookie`, `Rack::Session::Dalli`, etc). + +Authentication is automatic for any routes that call `protect_with_gauth!`. You can add a more user friendly login page, like this: + +````ruby + get '/login' do + '<a href="/auth/g">Login with Google Apps</a>' + end +```` + +This extension does not provide a logout mechanism, but one can be added easily if you like: + +````ruby + get '/logout' do + session.clear + # redirect or whatever... + end +```` + +## Project Status + +- Build: [![Build Status](https://secure.travis-ci.org/styleseek/sinatra-g_auth.png?branch=master)](https://travis-ci.org/styleseek/sinatra-g_auth) +- Code Quality: [![Code Climate](https://codeclimate.com/github/styleseek/sinatra-g_auth.png)](https://codeclimate.com/github/styleseek/sinatra-g_auth) +- Dependencies: [![Dependency Status](https://gemnasium.com/styleseek/sinatra-g_auth.png)](https://gemnasium.com/styleseek/sinatra-g_auth) ## Contributing 1. Fork it 2. Create your feature branch (`git checkout -b my-new-feature`)