johnallen3d
2/16/2016 - 9:24 PM

Simplest implementation of the OmniAuth developer strategy (OmniAuth::Strategies::Developer). http://www.rubydoc.info/github/intridea/omnia

Simplest implementation of the OmniAuth developer strategy (OmniAuth::Strategies::Developer). http://www.rubydoc.info/github/intridea/omniauth/OmniAuth/Strategies/Developer

Rails.application.routes.draw do
  match '/auth/:provider/callback', to: 'sessions#create', via: %i(get post)
  match '/auth/sign_out', to: 'sessions#delete', via: %i(get)

  root 'welcome#index'
end
Rails.application.config.middleware.use OmniAuth::Builder do
  unless Rails.env.production?
    provider :developer, fields: %i(name email), uid_field: :email
  end
end
hello <%= current_user %>
</br>

<% if current_user %>
  <%= link_to('Sign out', '/auth/sign_out') %>
<% else %>
  <%= link_to('Sign in', '/auth/developer') %>
<% end %>
class SessionsController < ApplicationController
  skip_before_action :verify_authenticity_token, only: :create

  def create
    self.current_user = auth_hash

    redirect_to '/'
  end

  def delete
    session[:user_id] = nil

    redirect_to '/'
  end

  protected

  def auth_hash
    request.env['omniauth.auth']
  end
end
class ApplicationController < ActionController::Base
  # Prevent CSRF attacks by raising an exception.
  # For APIs, you may want to use :null_session instead.
  protect_from_forgery with: :exception

  def current_user=(user)
    session[:user_id] = user.uid
  end

  def current_user
    session[:user_id]
  end
  helper_method :current_user
end