Method: Authenticate::Session#login

Defined in:
lib/authenticate/session.rb

#login(user) {|status| ... } ⇒ User

Finish user login process, after the user has been authenticated. Called when user creates an account or signs back into the app. Runs all callbacks checking for any login failure. If a login failure occurs, user is NOT logged in.

Yields:

  • (status)

Returns:



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/authenticate/session.rb', line 24

def (user)
  @current_user = user
  @current_user.generate_session_token if user.present?

  message = 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

  status = message.present? ? Failure.new(message) : Success.new
  if status.success?
    @current_user.save
    write_cookie if @current_user.session_token
  else
    @current_user = nil
  end

  yield(status) if block_given?
end