sample_rails_tailwind/app/controllers/sessions_controller.rb
songtianlun bd5c6ae6bb feat: enhance user session management
- Update session creation to use safe navigation operator
- Implement log_out method in SessionsHelper
- Add session reset and login on user creation
- Improve user login tests for better coverage

These changes improve the user session management by ensuring
that the session is handled more safely and efficiently. The
addition of the log_out method centralizes session termination,
while the updated tests ensure that both login and logout
functionality are thoroughly validated.
2025-01-02 11:59:27 +08:00

24 lines
518 B
Ruby

class SessionsController < ApplicationController
include SessionsHelper
def new
end
def create
user = User.find_by(email: params[:session][:email].downcase)
# if user && user.authenticate(params[:session][:password])
if user&.authenticate(params[:session][:password])
reset_session
log_in user
redirect_to user
else
flash.now[:danger] = 'Invalid email/password combination'
render 'new'
end
end
def destroy
log_out
redirect_to root_url
end
end