Sha256: 1e60643ce720654eadc0acae86b19c6f1c8e0fe3eac46367b75b475984edf605

Contents?: true

Size: 632 Bytes

Versions: 6

Compression:

Stored size: 632 Bytes

Contents

module Shipit
  class GithubAuthenticationController < ActionController::Base
    include Shipit::Engine.routes.url_helpers

    def callback
      return_url = request.env['omniauth.origin'] || root_path
      auth = request.env['omniauth.auth']

      return render 'failed', layout: false if auth.blank?

      session[:user_id] = sign_in_github(auth)
      redirect_to return_url
    end

    def logout
      reset_session
      redirect_to root_path
    end

    private

    def sign_in_github(auth)
      user = Shipit.github_api.user(auth[:info][:nickname])
      User.find_or_create_from_github(user).id
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
shipit-engine-0.7.0 app/controllers/shipit/github_authentication_controller.rb
shipit-engine-0.6.4 app/controllers/shipit/github_authentication_controller.rb
shipit-engine-0.6.3 app/controllers/shipit/github_authentication_controller.rb
shipit-engine-0.6.2 app/controllers/shipit/github_authentication_controller.rb
shipit-engine-0.6.1 app/controllers/shipit/github_authentication_controller.rb
shipit-engine-0.6.0 app/controllers/shipit/github_authentication_controller.rb