Skip to content

Commit 0416b6f

Browse files
authored
Do not use permanent when reading from cookies (#91)
When we want to store a permanent cookie, we have to use the `permanent` accessor. When reading, this is not needed. See [documentation (https://api.rubyonrails.org/classes/ActionDispatch/Cookies/ChainedCookieJars.html#method-i-permanent) : > This jar is only meant for writing. You'll read permanent cookies through the regular accessor. When we want to check for a cookie existence, instead of doing: `cookies.encrypted[:remember_token].present?` we can do just: `cookies[:remember_token]`
1 parent 52ee134 commit 0416b6f

File tree

3 files changed

+12
-13
lines changed

3 files changed

+12
-13
lines changed

README.md

+9-9
Original file line numberDiff line numberDiff line change
@@ -1113,8 +1113,8 @@ module Authentication
11131113
def current_user
11141114
Current.user ||= if session[:current_user_id].present?
11151115
User.find_by(id: session[:current_user_id])
1116-
elsif cookies.permanent.encrypted[:remember_token].present?
1117-
User.find_by(remember_token: cookies.permanent.encrypted[:remember_token])
1116+
elsif cookies[:remember_token]
1117+
User.find_by(remember_token: cookies.encrypted[:remember_token])
11181118
end
11191119
end
11201120
...
@@ -1373,8 +1373,8 @@ module Authentication
13731373
def current_user
13741374
Current.user = if session[:current_active_session_id].present?
13751375
ActiveSession.find_by(id: session[:current_active_session_id]).user
1376-
elsif cookies.permanent.encrypted[:remember_token].present?
1377-
User.find_by(remember_token: cookies.permanent.encrypted[:remember_token])
1376+
elsif cookies[:remember_token]
1377+
User.find_by(remember_token: cookies.encrypted[:remember_token])
13781378
end
13791379
end
13801380
...
@@ -1586,8 +1586,8 @@ module Authentication
15861586
def current_user
15871587
Current.user = if session[:current_active_session_id].present?
15881588
ActiveSession.find_by(id: session[:current_active_session_id])&.user
1589-
elsif cookies.permanent.encrypted[:remember_token].present?
1590-
User.find_by(remember_token: cookies.permanent.encrypted[:remember_token])
1589+
elsif cookies[:remember_token]
1590+
User.find_by(remember_token: cookies.encrypted[:remember_token])
15911591
end
15921592
end
15931593
...
@@ -1675,16 +1675,16 @@ module Authentication
16751675
end
16761676
...
16771677
def remember(active_session)
1678-
cookies.permanent.encrypted[:remember_token] = active_session.remember_token
1678+
cookies.encrypted[:remember_token] = active_session.remember_token
16791679
end
16801680
...
16811681
private
16821682

16831683
def current_user
16841684
Current.user = if session[:current_active_session_id].present?
16851685
ActiveSession.find_by(id: session[:current_active_session_id])&.user
1686-
elsif cookies.permanent.encrypted[:remember_token].present?
1687-
ActiveSession.find_by(remember_token: cookies.permanent.encrypted[:remember_token])&.user
1686+
elsif cookies[:remember_token]
1687+
ActiveSession.find_by(remember_token: cookies.encrypted[:remember_token])&.user
16881688
end
16891689
end
16901690
...

app/controllers/concerns/authentication.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ def remember(active_session)
4343
def current_user
4444
Current.user = if session[:current_active_session_id].present?
4545
ActiveSession.find_by(id: session[:current_active_session_id])&.user
46-
elsif cookies.permanent.encrypted[:remember_token].present?
47-
ActiveSession.find_by(remember_token: cookies.permanent.encrypted[:remember_token])&.user
46+
elsif cookies[:remember_token]
47+
ActiveSession.find_by(remember_token: cookies.encrypted[:remember_token])&.user
4848
end
4949
end
5050

test/test_helper.rb

+1-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@ class ActiveSupport::TestCase
1313
def current_user
1414
if session[:current_active_session_id].present?
1515
ActiveSession.find_by(id: session[:current_active_session_id])&.user
16-
else
17-
cookies[:remember_token].present?
16+
elsif cookies[:remember_token]
1817
ActiveSession.find_by(remember_token: cookies[:remember_token])&.user
1918
end
2019
end

0 commit comments

Comments
 (0)