Sha256: be0686cafcab520af841c0fc63c4a7f35f9e04e1c1947302b03702fae0d1fde9

Contents?: true

Size: 1.01 KB

Versions: 2

Compression:

Stored size: 1.01 KB

Contents

require 'pp'

module Example
  class App < Sinatra::Base
    enable :sessions

    set :github_options, {
                            :secret    => ENV['GITHUB_CLIENT_SECRET'],
                            :client_id => ENV['GITHUB_CLIENT_ID'],
                            :scopes    => 'user,offline_access,repo' # repo is need for org auth :\
                          }

    register Sinatra::Auth::Github

    helpers do
      def repos
        github_request("user/repos")
      end
    end

    get '/' do
      authenticate!
      "Hello There, #{github_user.name}!#{github_user.token}\n#{repos.inspect}"
    end

    get '/orgs/:id' do
      github_organization_authenticate!(params['id'])
      "Hello There, #{github_user.name}! You have access to the #{params['id']} organization."
    end

    get '/teams/:id' do
      github_team_authenticate!(params['id'])
      "Hello There, #{github_user.name}! You have access to the #{params['id']} team."
    end

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

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sinatra_auth_github-0.1.1 spec/app.rb
sinatra_auth_github-0.1.0 spec/app.rb