zohl / servant-auth-cookie

Authentication via encrypted cookies
BSD 3-Clause "New" or "Revised" License
23 stars 23 forks source link

Rewrite cookie generation to use Web.Cookie and generate spec conforming cookie headers #47

Open nmk opened 6 years ago

nmk commented 6 years ago

Currently, servant-auth-cookie generates invalid cookies which fail on some browsers. The error is in the rendering of the previously available acsCookieFlags field. It resulted in cookies which look like name=value;HttpOnly=;Secure=;SameSite. This failed to set a cookie for me on Chrome 64.0.3282.186 on OS X. Firefox and Safari seem to be more lenient in their cookie parsing and parsed the cookie successfully. In any case, if I read the spec correctly, the above should be name=value;HttpOnly;Secure;SameSite (not the missing equals signs).

As this package already leverages Web.Cookie from the cookie package, I rewrote the rendering code to use the provided functions, which results in spec conforming cookies. This required the addition of specific fields for the HttpOnly, Secure and SameSite options in AuthCookieSettings type. I have added the fields in the default instance, so the tests continue to run. I am not sure what to do with the version number though - I will leave it up to you, as this might break user code if they were using the acsCookieFlags field.

kristoff3r commented 6 years ago

This is much better than my pull request, +1

afcady commented 6 years ago

So why wasn't this merged? Is this package abandoned?