README.md in sinatra_auth_github-0.1.1 vs README.md in sinatra_auth_github-0.1.2
- old
+ new
@@ -1,60 +1,58 @@
sinatra_auth_github
===================
A sinatra extension that provides oauth authentication to github. Find out more about enabling your application at github's [oauth quickstart](http://gist.github.com/419219).
-To test it out on localhost set your callback url to 'http://localhost:9292/auth/github/callback'
+To test it out on localhost set your callback url to 'http://localhost:9393/auth/github/callback'
-There's an example app in [spec/app.rb](/atmos/sinatra_auth_github/blob/master/spec/app.rb).
+The gist of this project is to provide a few things easily:
-There's a slightly more deployment friendly version [href](http://gist.github.com/421704).
+* authenticate a user against github's oauth service
+* provide an easy way to make API requests for the authenticated user
+* optionally restrict users to a specific github organization
+* optionally restrict users to a specific github team
-The Extension in Action
-=======================
+Installation
+============
+
+ % gem install sinatra_auth_github
+
+Running the Example
+===================
% gem install bundler
% bundle install
- % GITHUB_CLIENT_ID="<from GH>" GITHUB_CLIENT_SECRET="<from GH>" bundle exec shotgun
+ % GITHUB_CLIENT_ID="<from GH>" GITHUB_CLIENT_SECRET="<from GH>" bundle exec rackup -p9393
-```ruby
-module Example
- class App < Sinatra::Base
- enable :sessions
+There's an example app in [spec/app.rb](/atmos/sinatra_auth_github/blob/master/spec/app.rb).
- set :github_options, {
- # GitHub Provided secrets
- :secret => ENV['GITHUB_CLIENT_SECRET'],
- :client_id => ENV['GITHUB_CLIENT_ID'],
+Example App Functionality
+=========================
- # How much info you need about the user
- :scopes => 'user,offline_access',
+You can simply authenticate via GitHub by hitting http://localhost:9292
- # restrict access to a members of organization named
- :organization => "github",
+You can check organization membership by hitting http://localhost:9292/orgs/github
- # restrict access to specific team on an organization
- :team => nil # || 42
- }
+You can check team membership by hitting http://localhost:9292/teams/42
- register Sinatra::Auth::Github
+All unsuccessful authentication requests get sent to the securocat denied page.
- before do
- authenticate!
- end
+API Requests
+============
- helpers do
- def repos
- github_request("repos/show/#{github_user.login}")
- end
- end
+The extension also provides a simple way to do get requests against the
+GitHub API as the authenticated user.
- get '/' do
- "Hello There, #{github_user.name}!#{github_user.token}\n#{repos.inspect}"
+ def repos
+ github_request("user/repos")
end
- get '/logout' do
- logout!
- redirect '/'
- end
- end
-end
-```
+There's awesome docs on the v3 API [available here](http://developer.github.com/v3/).
+
+Extension Options
+=================
+
+* `:scopes` - The OAuth2 scopes you require, [Learn More](http://gist.github.com/419219)
+* `:secret` - The client secret that GitHub provides
+* `:client_id` - The client id that GitHub provides
+* `:failure_app` - A Sinatra::Base class that has a route for `/authenticated`, Useful for overriding the securocat default page.
+* `:callback_url` - The path that GitHub posts back to, defaults to `/auth/github/callback`.