module Sinatra::Auth::Github
Constants
- VERSION
Public Class Methods
registered(app)
click to toggle source
# 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.scope_defaults :default, :config => { :client_id => app.github_options[:client_id] || ENV['GITHUB_CLIENT_ID'], :client_secret => app.github_options[:secret] || ENV['GITHUB_CLIENT_SECRET'], :scope => app.github_options[:scopes] || '', :redirect_uri => app.github_options[:callback_url] || '/auth/github/callback' } manager.serialize_from_session { |key| Warden::GitHub::Verifier.load(key) } manager.serialize_into_session { |user| Warden::GitHub::Verifier.dump(user) } end # Sign cookie sessions in with AS::Verifier ENV['WARDEN_GITHUB_VERIFIER_SECRET'] ||= ENV['GITHUB_VERIFIER_SECRET'] unless ENV['WARDEN_GITHUB_VERIFIER_SECRET'] warn "No WARDEN_GITHUB_VERIFIER_SECRET environmental variable found." warn "Your sessions are likely being stored insecurely." 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