diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb
index 098a608..83ead4d 100644
--- a/app/controllers/sessions_controller.rb
+++ b/app/controllers/sessions_controller.rb
@@ -1,6 +1,6 @@
class SessionsController < ApplicationController
skip_before_filter :ensure_authenticated
- protect_from_forgery except: [:new, :create, :failure]
+ protect_from_forgery except: [:new, :create, :failure, :destroy]
def new
redirect_to '/auth/g'
@@ -20,6 +20,11 @@ def create
end
end
+ def destroy
+ logout
+ redirect_to root_path
+ end
+
def failure
render :inline => 'Snowman says no.
☃
'
end
diff --git a/config/routes.rb b/config/routes.rb
index 327ac42..b7898f6 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -2,4 +2,5 @@
get '/login', :to => 'sessions#new', :as => :login
post '/auth/g/callback', :to => 'sessions#create'
post '/auth/failure', :to => 'sessions#failure'
+ delete '/logout', :to => 'sessions#destroy', :as => :logout
end
diff --git a/lib/google_auth/controller.rb b/lib/google_auth/controller.rb
index 70e2e14..bd834b8 100644
--- a/lib/google_auth/controller.rb
+++ b/lib/google_auth/controller.rb
@@ -19,5 +19,10 @@ def ensure_authenticated
end
end
+ def logout
+ session[:user_id] = nil
+ @current_user = nil
+ end
+
end
end