You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Antikythera.Http.SetCookie lacks the option to set the SameSite attribute of Set-Cookie header, and now it is forced into using SameSite=Lax.
As my team and I came across a need to set the SameSite directive to SameSite=none (especially in combination with Antikythera.Session), I am raising this issue and proposing the addition of this functionality. This would also help gears that want to enforce SameSite=strict.
Proposed changes
Add same_site field to Antikythera.Http.SetCookie
This will be an enum that takes either :lax, :strict, or :none
Add an interface to Antikythera.Plug.Session.load/2
When explicitly adding a Cookie entry, passing an optional argument to Antikythera.Conn.put_resp_cookie/4 can achieve this
But when used in combination with Antikythera.Plug.Session.load/2 it is not trivial, so I would like advice on how to change this
As of right now, I am thinking of passing options under :set_cookie key, then passing this option to make_before_send/2 (this would add an argument and thus change the signature to make_before_send/3 ) so that it can be passed onto Antikythera.Conn.put_resp_cookie/4 (now called with only 3 arguments).
Since cowlib which Antikythera uses, has :same_site, Antikythera.Http.SetCookie should have it as well. However, cowlib 2.9 or earlier only supports :lax and :strict, so we have to update cowlib to 2.10. It means we have to update cowboy to 2.9.
I have checked with our team that we can figure out a workaround to our project's specific problem, so we can wait for the cowboy update.
Meanwhile, we found out that we need to specify the session's expiration explicitly, so I sent a patch that does this and also addresses the second part of this issue (Add an interface to Antikythera.Plug.Session.load/2). The first part will be addressed after the cowboy update, because it is dependent on cowboy supporting the :none value for same_site key.
Rationale
Antikythera.Http.SetCookie
lacks the option to set theSameSite
attribute ofSet-Cookie
header, and now it is forced into usingSameSite=Lax
.As my team and I came across a need to set the
SameSite
directive toSameSite=none
(especially in combination withAntikythera.Session
), I am raising this issue and proposing the addition of this functionality. This would also help gears that want to enforceSameSite=strict
.Proposed changes
same_site
field toAntikythera.Http.SetCookie
:lax
,:strict
, or:none
Antikythera.Plug.Session.load/2
Antikythera.Conn.put_resp_cookie/4
can achieve thisAntikythera.Plug.Session.load/2
it is not trivial, so I would like advice on how to change this:set_cookie
key, then passing this option tomake_before_send/2
(this would add an argument and thus change the signature tomake_before_send/3
) so that it can be passed ontoAntikythera.Conn.put_resp_cookie/4
(now called with only 3 arguments).Relevant references
The text was updated successfully, but these errors were encountered: