Module: Sinatra::Auth::Github

Defined in:
lib/sinatra/auth/github.rb,
lib/sinatra/auth/github/version.rb,
lib/sinatra/auth/github/test/test_helper.rb

Defined Under Namespace

Modules: Helpers, Test Classes: AccessDenied, BadAuthentication

Constant Summary collapse

VERSION =
"0.14.0"

Class Method Summary collapse

Class Method Details

.registered(app) ⇒ Object



147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
# File 'lib/sinatra/auth/github.rb', line 147

def self.registered(app)
  app.use AccessDenied
  app.use BadAuthentication

  app.use Warden::Manager do |manager|
    manager.default_strategies :github

    manager.failure_app     = app.github_options[:failure_app] || BadAuthentication

    manager[:client_secret] = app.github_options[:secret]       || ENV['GITHUB_CLIENT_SECRET']
    manager[:scopes]        = app.github_options[:scopes]       || ''
    manager[:client_id]     = app.github_options[:client_id]    || ENV['GITHUB_CLIENT_ID']
    manager[:redirect_uri]  = app.github_options[:callback_url] || '/auth/github/callback'
  end

  app.helpers Helpers

  app.get '/auth/github/callback' do
    if params["error"]
      redirect "/unauthenticated"
    else
      authenticate!
      return_to = session.delete('return_to') || _relative_url_for('/')
      redirect return_to
    end
  end
end