mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FIX: add path to cookies so sessions on the same domain but different subfolders don't log each other out
This commit is contained in:
parent
482365b943
commit
1716747810
@ -159,7 +159,8 @@ class Auth::DefaultCurrentUserProvider
|
|||||||
value: unhashed_auth_token,
|
value: unhashed_auth_token,
|
||||||
httponly: true,
|
httponly: true,
|
||||||
expires: SiteSetting.maximum_session_age.hours.from_now,
|
expires: SiteSetting.maximum_session_age.hours.from_now,
|
||||||
secure: SiteSetting.force_https
|
secure: SiteSetting.force_https,
|
||||||
|
path: GlobalSetting.relative_url_root.nil? ? '/' : GlobalSetting.relative_url_root
|
||||||
}
|
}
|
||||||
|
|
||||||
if SiteSetting.same_site_cookies != "Disabled"
|
if SiteSetting.same_site_cookies != "Disabled"
|
||||||
|
@ -245,6 +245,18 @@ describe Auth::DefaultCurrentUserProvider do
|
|||||||
expect(cookies["_t"].key?(:same_site)).to eq(false)
|
expect(cookies["_t"].key?(:same_site)).to eq(false)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "cookies includes path" do
|
||||||
|
user = Fabricate(:user)
|
||||||
|
cookies = {}
|
||||||
|
provider('/').log_on_user(user, {}, cookies)
|
||||||
|
expect(cookies["_t"][:path]).to eq("/")
|
||||||
|
|
||||||
|
GlobalSetting.stubs(:relative_url_root).returns('/forum')
|
||||||
|
cookies = {}
|
||||||
|
provider('/').log_on_user(user, {}, cookies)
|
||||||
|
expect(cookies["_t"][:path]).to eq("/forum")
|
||||||
|
end
|
||||||
|
|
||||||
it "correctly expires session" do
|
it "correctly expires session" do
|
||||||
SiteSetting.maximum_session_age = 2
|
SiteSetting.maximum_session_age = 2
|
||||||
user = Fabricate(:user)
|
user = Fabricate(:user)
|
||||||
|
Loading…
Reference in New Issue
Block a user