main
 1class SessionsController < ApplicationController
 2  skip_before_action :ensure_valid_session, only: [:new, :create]
 3  layout 'public'
 4
 5  def initialize(login_command = resolve(:login_command))
 6    @login_command = login_command
 7    super()
 8  end
 9
10  def new
11  end
12
13  def create
14    if user_session = @login_command.run(self)
15      cookies.signed[:raphael] = user_session
16      redirect_to root_path(anchor: '')
17    else
18      flash[:error] = I18n.translate(:invalid_credentials)
19      redirect_to new_session_path
20    end
21  end
22
23  def destroy
24    reset_session
25    cookies.delete(:raphael)
26    current_session.revoke!
27    redirect_to new_session_path
28  end
29end