Class: RememberMe
- Inherits:
-
Merb::Authentication::Strategy
- Object
- Merb::Authentication::Strategy
- RememberMe
- Defined in:
- lib/merb-auth-remember-me/strategies/remember_me.rb
Instance Method Summary collapse
- #current_user ⇒ Object
- #current_user=(new_user) ⇒ Object
-
#handle_remember_cookie!(new_cookie_flag) ⇒ Object
Refresh the cookie auth token if it exists, create it otherwise.
-
#run! ⇒ Object
Called from #current_user.
- #send_remember_cookie! ⇒ Object
-
#valid_remember_cookie? ⇒ Boolean
Cookies shouldn’t be allowed to persist past their freshness date, and they should be changed at each login.
Instance Method Details
#current_user ⇒ Object
13 14 15 |
# File 'lib/merb-auth-remember-me/strategies/remember_me.rb', line 13 def current_user @current_user end |
#current_user=(new_user) ⇒ Object
17 18 19 |
# File 'lib/merb-auth-remember-me/strategies/remember_me.rb', line 17 def current_user=(new_user) @current_user = new_user end |
#handle_remember_cookie!(new_cookie_flag) ⇒ Object
Refresh the cookie auth token if it exists, create it otherwise
37 38 39 40 41 42 43 44 45 |
# File 'lib/merb-auth-remember-me/strategies/remember_me.rb', line 37 def return unless current_user case when then current_user.refresh_token # keeping same expiry date when then current_user.remember_me else current_user.forget_me end end |
#run! ⇒ Object
Called from #current_user. Finaly, attempt to login by an expiring token in the cookie. for the paranoid: we should be storing user_token = hash(cookie_token, request IP)
5 6 7 8 9 10 11 |
# File 'lib/merb-auth-remember-me/strategies/remember_me.rb', line 5 def run! current_user = [:auth_token] && Merb::Authentication.user_class.first(:conditions => ["remember_token = ?", [:auth_token]]) if current_user && current_user.remember_token? false # freshen cookie token (keeping date) current_user end end |
#send_remember_cookie! ⇒ Object
47 48 49 |
# File 'lib/merb-auth-remember-me/strategies/remember_me.rb', line 47 def .(:auth_token, current_user.remember_token, :expires => current_user.remember_token_expires_at.to_time) end |
#valid_remember_cookie? ⇒ Boolean
Cookies shouldn’t be allowed to persist past their freshness date, and they should be changed at each login
30 31 32 33 34 |
# File 'lib/merb-auth-remember-me/strategies/remember_me.rb', line 30 def return nil unless current_user (current_user.remember_token?) && ([:auth_token] == current_user.remember_token) end |