Sha256: 3c84e3022e9a545bfc1b94a64f09befa048cf1d64e59bc9a06aeab09420a402a

Contents?: true

Size: 1.02 KB

Versions: 1

Compression:

Stored size: 1.02 KB

Contents

class JekyllAuth
  class AuthSite < Sinatra::Base

    configure :production do
      require 'rack-ssl-enforcer'
      use Rack::SslEnforcer if JekyllAuth.ssl?
    end

    use Rack::Session::Cookie, {
      :http_only => true,
      :secret    => ENV['SESSION_SECRET'] || SecureRandom.hex
    }

    set :github_options, {
      :scopes    => 'read:org'
    }

    ENV['WARDEN_GITHUB_VERIFIER_SECRET'] ||= SecureRandom.hex
    register Sinatra::Auth::Github

    use Rack::Logger

    include JekyllAuth::Helpers

    before do
      pass if whitelisted?

      logger.info "Authentication strategy: #{authentication_strategy}"

      case authentication_strategy
      when :team
        github_team_authenticate! ENV['GITHUB_TEAM_ID']
      when :teams
        github_teams_authenticate! ENV['GITHUB_TEAM_IDS'].split(",")
      when :org
        github_organization_authenticate! ENV['GITHUB_ORG_NAME']
      else
        raise JekyllAuth::ConfigError
      end
    end

    get '/logout' do
      logout!
      redirect '/'
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
jekyll-auth-2.0.0 lib/jekyll_auth/auth_site.rb