# HG changeset patch # User bsw # Date 1597926334 -7200 # Node ID 4f182720a2ecd45391b7384fbf8c5a693f034ec6 # Parent 9d99a4f262a2e42828663289f9783a004a9b8893 Automatically fix inconsistent session cookies diff -r 9d99a4f262a2 -r 4f182720a2ec app/main/_filter/20_session.lua --- a/app/main/_filter/20_session.lua Thu Aug 20 14:03:09 2020 +0200 +++ b/app/main/_filter/20_session.lua Thu Aug 20 14:25:34 2020 +0200 @@ -6,6 +6,19 @@ and not (request.get_module() == "oauth" and request.get_view() == "session") then slot.put_into("error", _"Cookie error. Try restarting your web browser and login again.") + ui.script{ script = [[ + function cookie_by_name(name) { + var match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)')); + if (match) return match[2]; + } + var cookie = (cookie_by_name("]] .. config.cookie_name .. [[")); + var cookie_samesite = (cookie_by_name("]] .. config.cookie_name_samesite ..[[")); + if (cookie != cookie_samesite) { + document.cookie = "]] .. config.cookie_name .. [[= ; expires = Thu, 01 Jan 1970 00:00:00 GMT" + document.cookie = "]] .. config.cookie_name_samesite .. [[= ; expires = Thu, 01 Jan 1970 00:00:00 GMT" + window.location = "]] .. request.get_absolute_baseurl() .. [["; + } + ]]} return end