Skip to content
Browse files

Initial commit

  • Loading branch information...
0 parents commit b302420d490279f8a17d9eed566927a7aa7345dc @fairchild fairchild committed Dec 7, 2011
Showing with 96 additions and 0 deletions.
  1. +14 −0 Gemfile
  2. +1 −0 Procfile
  3. +3 −0 README.md
  4. +5 −0 config.ru
  5. +73 −0 example_omniauth_app.rb
14 Gemfile
@@ -0,0 +1,14 @@
+source :rubygems
+
+gem 'sinatra'
+gem 'json'
+gem 'omniauth'
+gem 'omniauth-oauth2'
+gem 'omniauth-github'
+# gem 'omniauth-att', :path => File.expand_path("./../../omniauth-att", __FILE__)
+
+gem 'thin'
+group :development do
+ gem 'shotgun'
+end
+
1 Procfile
@@ -0,0 +1 @@
+web: bundle exec thin -R config.ru start -p $PORT
3 README.md
@@ -0,0 +1,3 @@
+ bundle install
+ ruby ./example_omniauth_app.rb
+ open http://localhost:4567
5 config.ru
@@ -0,0 +1,5 @@
+$LOAD_PATH.unshift(File.dirname(__FILE__))
+require "rubygems"
+require 'example_omniauth_app'
+
+run SinatraApp
73 example_omniauth_app.rb
@@ -0,0 +1,73 @@
+require 'rubygems'
+require 'sinatra'
+require 'json'
+require 'omniauth'
+require 'omniauth-github'
+require 'omniauth-facebook'
+require 'omniauth-twitter'
+#TODO require 'omniauth-att'
+
+class SinatraApp < Sinatra::Base
+ configure do
+ set :sessions, true
+ set :inline_templates, true
+ end
+ use OmniAuth::Builder do
+ provider :github, 'ece9da5a3cff23b3475f','eb81c6098ba5d08e3c2dbd263bf11de5f3382d55'
+ provider :facebook, '290594154312564','a26bcf9d7e254db82566f31c9d72c94e'
+ provider :twitter, 'cO23zABqRXQpkmAXa8MRw', 'TwtroETQ6sEDWW8HEgt0CUWxTavwFcMgAwqHdb0k1M'
+ #TODO provider :att, '', ''
+ end
+
+ get '/' do
+ erb "
+ <a href='http://localhost:4567/auth/github'>Login with Github</a><br>
+ <a href='http://localhost:4567/auth/facebook'>Login with facebook</a><br>
+ <a href='http://localhost:4567/auth/twitter'>Login with twitter</a><br>
+ <a href='http://localhost:4567/auth/att-foundry'>Login with att-foundry</a>"
+ end
+
+ get '/auth/:provider/callback' do
+ erb "<h1>#{params[:provider]}</h1>
+ <pre>#{JSON.pretty_generate(request.env['omniauth.auth'])}</pre>"
+ end
+
+ get '/auth/failure' do
+ erb "<h1>Authentication Failed:</h1><h3>message:<h3> <pre>#{params}</pre>"
+ end
+
+ get '/auth/:provider/deauthorized' do
+ erb "#{params[:provider]} has deauthorized this app."
+ end
+
+ get '/protected' do
+ throw(:halt, [401, "Not authorized\n"]) unless session[:authenticated]
+ erb "<pre>#{request.env['omniauth.auth'].to_json}</pre><hr>
+ <a href='/logout'>Logout</a>"
+ end
+
+ get '/logout' do
+ session[:authenticated] = false
+ redirect '/'
+ end
+
+end
+
+SinatraApp.run! if __FILE__ == $0
+
+__END__
+
+@@ layout
+<html>
+ <head>
+ <link href='http://twitter.github.com/bootstrap/1.4.0/bootstrap.min.css' rel='stylesheet' />
+ </head>
+ <body>
+ <div class='container'>
+ <div class='content'>
+ <%= yield %>
+ </div>
+ </div>
+ </body>
+</html>
+

0 comments on commit b302420

Please sign in to comment.
Something went wrong with that request. Please try again.