Class: SessionsController

Inherits:
ApplicationController
  • Object
show all
Defined in:
lib/rails/generators/google_oauth_calendar/install/templates/sessions_controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject



7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/rails/generators/google_oauth_calendar/install/templates/sessions_controller.rb', line 7

def create
  auth = request.env["omniauth.auth"]
  user = User.where(:provider => auth['provider'],
                    :uid => auth['uid']).first || User.create_with_omniauth(auth)
  user.token = auth[:credentials][:token];
  user.token_expires_at = Time.at(auth[:credentials][:expires_at])
  user.refresh_token = auth[:credentials][:refresh_token]
  user.save

  session[:user_id] = user.id
  redirect_to root_url, :notice => 'Signed in!'
end

#destroyObject



20
21
22
23
# File 'lib/rails/generators/google_oauth_calendar/install/templates/sessions_controller.rb', line 20

def destroy
  reset_session
  redirect_to root_url, :notice => 'Signed out!'
end

#failureObject



25
26
27
28
29
# File 'lib/rails/generators/google_oauth_calendar/install/templates/sessions_controller.rb', line 25

def failure
  # if you want to debug something better, this is the object you want
  #auth = request.env["omniauth.error"]
  redirect_to root_url, :alert => "Authentication error: #{params[:message].humanize}"
end

#newObject



3
4
5
# File 'lib/rails/generators/google_oauth_calendar/install/templates/sessions_controller.rb', line 3

def new
  redirect_to '/auth/google_oauth2'
end