Class: SoAuth::UserSessionsController

Inherits:
ApplicationController show all
Defined in:
app/controllers/so_auth/user_sessions_controller.rb

Instance Method Summary collapse

Methods inherited from ApplicationController

#auth_redirect, #check_cookie, #cookie_valid?, #current_user, #login_required, #not_authorized, #signed_in?

Instance Method Details

#createObject

omniauth callback method



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'app/controllers/so_auth/user_sessions_controller.rb', line 7

def create
  omniauth = env['omniauth.auth']

  user = User.find_by_id(omniauth['uid'])
  if not user
    # New user registration
    user = User.new
    user.id = omniauth['uid']
  end
  user.email = omniauth['info']['email'] if user.respond_to?(:email)
  user.save

  session[:user_id] = user.id

  flash[:notice] = "Successfully logged in"
  redirect_to request.env['omniauth.origin'] || root_path
end

#destroyObject

logout - Clear our rack session BUT essentially redirect to the provider to clean up the Devise session from there too !



33
34
35
36
37
# File 'app/controllers/so_auth/user_sessions_controller.rb', line 33

def destroy
  reset_session
  flash[:notice] = 'You have successfully signed out!'
  redirect_to "#{ENV['AUTH_PROVIDER_URL']}/users/sign_out"
end

#failureObject

Omniauth failure callback



26
27
28
29
# File 'app/controllers/so_auth/user_sessions_controller.rb', line 26

def failure
  flash[:notice] = params[:message]
  redirect_to root_path
end