My webhoster all-inkl.com is great, but they have a very verbose auto-logout policy in their "Kundenadministrationssystem (KAS)" which drives me nuts because it kicks me out after only ~10 minutes of inactivity. And as the automatic logout is an irregular session termination, they will request 2FA upon login. ~10 minutes is by far not enough if I do configurations across multiple different systems, need time to do research in between and maybe even have a break. So a huge portion of my workday is wasted with the tedious login process and then looking for the place where I have left off.
I do not understand why this policy needs to be that strict (nobody uses public internet cafés anymore to configure their webhosting) and why they do not allow me to change this policy according to my needs.
Fortunately this can be worked around on my side with the help of this Violentmonkey script:
// ==UserScript==
// @name New script all-inkl.com
// @namespace Violentmonkey Scripts
// @match https://kas.all-inkl.com/*
// @grant none
// @version 1.0
// @author -
// @description 4/26/2025, 2:04:16 PM
// ==/UserScript==
/**
* This script reloads https://kas.all-inkl.com in regular
* intervals to avoid automatic session termination due to
* inactivity but ONLY if the user did not recently interact
* with the page. This is to avoid reloading the page while
* the user is right in the middle of changing a configuration.
*/
// number in milliseconds of incativity after that the page
// can safely be reloaded. Choose a timeout that is below
// all-inkl's timeout (+ 10_000, because the scheduler only
// runs once every 10 seconds) but gives you enough time to
// safely complete your actions:
const lastInteractionTimeout = 5_000 * 60
// scheduler:
setInterval(() => {
conditionallyReloadPage()
}, 1_000 * 10)
let lastInteractionTimestamp = Date.now()
// track when user has clicked any content:
document.body.addEventListener('click', () => {
lastInteractionTimestamp = Date.now()
})
// track when user has tabbed back into the window:
document.addEventListener('focus', () => {
lastInteractionTimestamp = Date.now()
})
// allow reloading the page if last interaction is older than timeout:
function conditionallyReloadPage() {
if (lastInteractionTimestamp < Date.now() - lastInteractionTimeout) {
window.location.reload()
}
}
Note: This is not a fix, this is only a workaround. Please all-inkl.com, fix this!