Module: Merb::Authentication::Mixins::AuthenticatedUser::InstanceMethods

Defined in:
lib/merb-auth-remember-me/mixins/authenticated_user.rb

Overview

ClassMethods

Instance Method Summary collapse

Instance Method Details

#forget_meObject

Deletes the server-side record of the authentication token. The client-side (browser cookie) and server-side (this remember_token) must always be deleted together.



88
89
90
91
92
# File 'lib/merb-auth-remember-me/mixins/authenticated_user.rb', line 88

def forget_me
  self.remember_token_expires_at = nil
  self.remember_token            = nil
  save
end

#refresh_tokenObject

refresh token (keeping same expires_at) if it exists



76
77
78
79
80
81
# File 'lib/merb-auth-remember-me/mixins/authenticated_user.rb', line 76

def refresh_token
  if remember_token?
    self.remember_token = self.class.make_token 
    save
  end
end

#remember_me(time = 2.weeks) ⇒ Object

These create and unset the fields required for remembering users between browser closes



61
62
63
# File 'lib/merb-auth-remember-me/mixins/authenticated_user.rb', line 61

def remember_me(time = 2.weeks)
  remember_me_for time
end

#remember_me_for(time) ⇒ Object



65
66
67
# File 'lib/merb-auth-remember-me/mixins/authenticated_user.rb', line 65

def remember_me_for(time)
  remember_me_until time.from_now.utc
end

#remember_me_until(time) ⇒ Object



69
70
71
72
73
# File 'lib/merb-auth-remember-me/mixins/authenticated_user.rb', line 69

def remember_me_until(time)
  self.remember_token_expires_at = time
  self.remember_token            = self.class.make_token
  save
end

#remember_token?Boolean

Returns:

  • (Boolean)


55
56
57
58
# File 'lib/merb-auth-remember-me/mixins/authenticated_user.rb', line 55

def remember_token?
  (!remember_token.blank?) && 
    remember_token_expires_at && (Time.now.utc < remember_token_expires_at.to_time)
end