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.
-
#login_from_cookie ⇒ Object
Called from #current_user.
- #run! ⇒ Object
- #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
6 7 8 |
# File 'lib/merb-auth-remember-me/strategies/remember_me.rb', line 6 def current_user @current_user end |
#current_user=(new_user) ⇒ Object
10 11 12 |
# File 'lib/merb-auth-remember-me/strategies/remember_me.rb', line 10 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
40 41 42 43 44 45 46 47 48 |
# File 'lib/merb-auth-remember-me/strategies/remember_me.rb', line 40 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 |
#login_from_cookie ⇒ 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)
16 17 18 19 20 21 22 |
# File 'lib/merb-auth-remember-me/strategies/remember_me.rb', line 16 def 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 |
#run! ⇒ Object
2 3 4 |
# File 'lib/merb-auth-remember-me/strategies/remember_me.rb', line 2 def run! end |
#send_remember_cookie! ⇒ Object
50 51 52 |
# File 'lib/merb-auth-remember-me/strategies/remember_me.rb', line 50 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
33 34 35 36 37 |
# File 'lib/merb-auth-remember-me/strategies/remember_me.rb', line 33 def return nil unless current_user (current_user.remember_token?) && ([:auth_token] == current_user.remember_token) end |