Class: Authenticate::Session
- Inherits:
-
Object
- Object
- Authenticate::Session
- Includes:
- Debug
- Defined in:
- lib/authenticate/session.rb
Instance Attribute Summary collapse
-
#request ⇒ Object
Returns the value of attribute request.
Instance Method Summary collapse
-
#authenticated? ⇒ Boolean
Has this session successfully authenticated?.
-
#current_user ⇒ User
Get the user represented by this session.
-
#deauthenticate ⇒ void
Invalidate the session token, unset the current user and remove the cookie.
-
#initialize(request, cookies) ⇒ Session
constructor
A new instance of Session.
-
#login(user, &block) ⇒ User
Finish user login process, after the user has been authenticated.
Methods included from Debug
Constructor Details
#initialize(request, cookies) ⇒ Session
10 11 12 13 14 15 |
# File 'lib/authenticate/session.rb', line 10 def initialize(request, ) @request = request # trackable module accesses request = @session_token = [] debug 'SESSION initialize: @session_token: ' + @session_token.inspect end |
Instance Attribute Details
#request ⇒ Object
Returns the value of attribute request.
8 9 10 |
# File 'lib/authenticate/session.rb', line 8 def request @request end |
Instance Method Details
#authenticated? ⇒ Boolean
Has this session successfully authenticated?
62 63 64 65 |
# File 'lib/authenticate/session.rb', line 62 def authenticated? debug 'session.authenticated?' current_user.present? end |
#current_user ⇒ User
Get the user represented by this session.
51 52 53 54 55 56 57 |
# File 'lib/authenticate/session.rb', line 51 def current_user debug 'session.current_user' if @session_token.present? @current_user ||= load_user end @current_user end |
#deauthenticate ⇒ void
This method returns an undefined value.
Invalidate the session token, unset the current user and remove the cookie.
71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/authenticate/session.rb', line 71 def deauthenticate # nuke session_token in db if current_user.present? current_user.reset_session_token! end # nuke notion of current_user @current_user = nil # # nuke cookie .delete end |
#login(user, &block) ⇒ User
Finish user login process, after the user has been authenticated. Called when user creates an account or signs back into the app.
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/authenticate/session.rb', line 21 def login(user, &block) debug 'session.login()' @current_user = user debug "session.login @current_user: #{@current_user.inspect}" # todo extract token gen to two different strategies @current_user.generate_session_token if user.present? = catch(:failure) do Authenticate.lifecycle.run_callbacks(:after_set_user, @current_user, self, { event: :authentication }) Authenticate.lifecycle.run_callbacks(:after_authentication, @current_user, self, { event: :authentication }) end debug "session.login after lifecycle callbacks, message: #{message}" status = .present? ? Failure.new() : Success.new if status.success? @current_user.save if @current_user.session_token else @current_user = nil end if block_given? block.call(status) end end |