module Sinatra::Auth::Oauthed

Constants

VERSION

Public Class Methods

registered(app) click to toggle source
# File lib/sinatra/auth/oauthed.rb, line 76
def self.registered(app)
  app.use Warden::Manager do |manager|
    manager.default_strategies :oauthed
    manager.failure_app = BadAuthentication

    manager[:oauthed_client_id]    = ENV['APPLICATION_CLIENT_ID']
    manager[:oauthed_secret]       = ENV['APPLICATION_CLIENT_SECRET']
    manager[:oauthed_scopes]       = ENV['APPLICATION_SCOPES_REQUESTED']
    manager[:oauthed_oauth_domain] = ENV['OAUTH_BASE_URL']
    manager[:oauthed_callback_url] = '/auth/oauthed/callback'
  end

  app.helpers Helpers

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