mig (owner)

Revisions

gist: 130761 Download_button fork
public
Description:
extracted cookie auth from restful_authentication
Public Clone URL: git://gist.github.com/130761.git
cookie_auth.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
def login_from_cookie
  user = cookies[:auth_token] && User.find_by_remember_token(cookies[:auth_token])
  if user && user.remember_token?
    self.current_user = user
    handle_remember_cookie! false # freshen cookie token (keeping date)
    self.current_user
  end
end
 
def valid_remember_cookie?
  return nil unless @current_user
  (@current_user.remember_token?) &&
    (cookies[:auth_token] == @current_user.remember_token)
end
 
# Refresh the cookie auth token if it exists, create it otherwise
def handle_remember_cookie!(new_cookie_flag)
  return unless @current_user
  case
  when valid_remember_cookie? then @current_user.refresh_token # keeping same expiry date
  when new_cookie_flag then @current_user.remember_me
  else @current_user.forget_me
  end
  send_remember_cookie!
end
 
def kill_remember_cookie!
  cookies.delete :auth_token
end
 
def send_remember_cookie!
  cookies[:auth_token] = {
    :value => @current_user.remember_token,
    :expires => @current_user.remember_token_expires_at }
end