Sha256: 0c23f99ebe7e755f90a2a77d000b6092c79bca9480d417f1e8984e8c25be5b6f
Contents?: true
Size: 1.44 KB
Versions: 5
Compression:
Stored size: 1.44 KB
Contents
require 'sinatra' module Example class App < Sinatra::Base enable :sessions enable :raise_errors disable :show_exceptions use Warden::Manager do |manager| manager.default_strategies :github manager.failure_app = BadAuthentication manager[:github_client_id] = ENV['GITHUB_CLIENT_ID'] || 'ee9aa24b64d82c21535a' manager[:github_secret] = ENV['GITHUB_CLIENT_SECRET'] || 'ed8ff0c54067aefb808dab1ca265865405d08d6f' manager[:github_scopes] = '' manager[:github_oauth_domain] = ENV['GITHUB_OAUTH_DOMAIN'] || 'https://github.com' manager[:github_callback_url] = '/auth/github/callback' end helpers do def ensure_authenticated unless env['warden'].authenticate! throw(:warden) end end def user env['warden'].user end end get '/' do ensure_authenticated "Hello There, #{user.name}!" end get '/redirect_to' do ensure_authenticated "Hello There, #{user.name}! return_to is working!" end get '/auth/github/callback' do ensure_authenticated redirect '/' end get '/logout' do env['warden'].logout "Peace!" end end class BadAuthentication < Sinatra::Base get '/unauthenticated' do status 403 "Unable to authenticate, sorry bud." end end def self.app @app ||= Rack::Builder.new do run App end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
warden-github-0.4.4 | spec/app.rb |
warden-github-0.4.3 | spec/app.rb |
warden-github-0.4.2 | spec/app.rb |
warden-github-0.4.1 | spec/app.rb |
warden-github-0.4.0 | spec/app.rb |