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' #provider :att, 'client_id', 'client_secret', :callback_url => (ENV['BASE_DOMAIN'] end get '/' do erb " Login with Github
Login with facebook
Login with twitter
Login with att-foundry" end get '/auth/:provider/callback' do erb "

#{params[:provider]}

#{JSON.pretty_generate(request.env['omniauth.auth'])}
" end get '/auth/failure' do erb "

Authentication Failed:

message:

#{params}
" 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 "
#{request.env['omniauth.auth'].to_json}

Logout" end get '/logout' do session[:authenticated] = false redirect '/' end end SinatraApp.run! if __FILE__ == $0 __END__ @@ layout
<%= yield %>