liquid_feedback_frontend
changeset 1517:4f182720a2ec
Automatically fix inconsistent session cookies
author | bsw |
---|---|
date | Thu Aug 20 14:25:34 2020 +0200 (2020-08-20) |
parents | 9d99a4f262a2 |
children | 9514b3c04ccb |
files | app/main/_filter/20_session.lua |
line diff
1.1 --- a/app/main/_filter/20_session.lua Thu Aug 20 14:03:09 2020 +0200 1.2 +++ b/app/main/_filter/20_session.lua Thu Aug 20 14:25:34 2020 +0200 1.3 @@ -6,6 +6,19 @@ 1.4 and not (request.get_module() == "oauth" and request.get_view() == "session") 1.5 then 1.6 slot.put_into("error", _"Cookie error. Try restarting your web browser and login again.") 1.7 + ui.script{ script = [[ 1.8 + function cookie_by_name(name) { 1.9 + var match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)')); 1.10 + if (match) return match[2]; 1.11 + } 1.12 + var cookie = (cookie_by_name("]] .. config.cookie_name .. [[")); 1.13 + var cookie_samesite = (cookie_by_name("]] .. config.cookie_name_samesite ..[[")); 1.14 + if (cookie != cookie_samesite) { 1.15 + document.cookie = "]] .. config.cookie_name .. [[= ; expires = Thu, 01 Jan 1970 00:00:00 GMT" 1.16 + document.cookie = "]] .. config.cookie_name_samesite .. [[= ; expires = Thu, 01 Jan 1970 00:00:00 GMT" 1.17 + window.location = "]] .. request.get_absolute_baseurl() .. [["; 1.18 + } 1.19 + ]]} 1.20 return 1.21 end 1.22