Class: SessionsController

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

Overview

Handles login and logout operations.

Instance Method Summary collapse

Instance Method Details

#failureObject



32
33
34
# File 'app/controllers/sessions_controller.rb', line 32

def failure
  redirect_to welcome_path, alert: "Authentication failed. Please try again."
end

#logoutnil

This method logs out a user

Returns:

  • (nil)


8
9
10
11
# File 'app/controllers/sessions_controller.rb', line 8

def logout
  reset_session
  redirect_to welcome_path, notice: "You are logged out."
end

#omniauthnil

This method calls the omniauth service

Returns:

  • (nil)


16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'app/controllers/sessions_controller.rb', line 16

def omniauth
  auth = request.env["omniauth.auth"]
  oauth_service = OauthService.new(auth, session[:user_id])
  result = oauth_service.connect_user

  if result[:success] and !session[:user_id].present?
    reset_session
    session[:user_id] = result[:user].id
    redirect_to result[:success] ? games_path : user_path(result[:user]), notice: result[:notice]
  elsif result[:success]
    redirect_to result[:success] ? games_path : user_path(result[:user]), notice: result[:notice]
  else
    redirect_to welcome_path, alert: result[:alert]
  end
end