Skip to content

Commit 7027b94

Browse files
Refactor remember, forget and current_user methods
1 parent c11e861 commit 7027b94

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

app/controllers/concerns/authentication.rb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,12 @@ def login(user)
1616
reset_session
1717
active_session = user.active_sessions.create!(user_agent: request.user_agent, ip_address: request.ip)
1818
session[:current_active_session_id] = active_session.id
19+
20+
active_session
1921
end
2022

2123
def forget(user)
2224
cookies.delete :remember_token
23-
user.regenerate_remember_token
2425
end
2526

2627
def logout
@@ -33,9 +34,8 @@ def redirect_if_authenticated
3334
redirect_to root_path, alert: "You are already logged in." if user_signed_in?
3435
end
3536

36-
def remember(user)
37-
user.regenerate_remember_token
38-
cookies.permanent.encrypted[:remember_token] = user.remember_token
37+
def remember(active_session)
38+
cookies.permanent.encrypted[:remember_token] = active_session.remember_token
3939
end
4040

4141
def store_location
@@ -48,7 +48,7 @@ def current_user
4848
Current.user = if session[:current_active_session_id].present?
4949
ActiveSession.find_by(id: session[:current_active_session_id])&.user
5050
elsif cookies.permanent.encrypted[:remember_token].present?
51-
User.find_by(remember_token: cookies.permanent.encrypted[:remember_token])
51+
ActiveSession.find_by(remember_token: cookies.permanent.encrypted[:remember_token])&.user
5252
end
5353
end
5454

app/controllers/sessions_controller.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ def create
99
redirect_to new_confirmation_path, alert: "Incorrect email or password."
1010
else
1111
after_login_path = session[:user_return_to] || root_path
12-
login @user
13-
remember(@user) if params[:user][:remember_me] == "1"
12+
active_session = login @user
13+
remember(active_session) if params[:user][:remember_me] == "1"
1414
redirect_to after_login_path, notice: "Signed in."
1515
end
1616
else

test/test_helper.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ def current_user
1414
if session[:current_active_session_id].present?
1515
ActiveSession.find_by(id: session[:current_active_session_id])&.user
1616
else cookies[:remember_token].present?
17-
User.find_by(remember_token: cookies[:remember_token])
17+
ActiveSession.find_by(remember_token: cookies[:remember_token])&.user
1818
end
1919
end
2020

0 commit comments

Comments
 (0)