diff --git a/uffd/default_config.cfg b/uffd/default_config.cfg
index 3e25e57675d7438b65cdc1b21352f3d2e90dc859..7b01157fb27e75cf264e21413a7f268c6c1f91c7 100644
--- a/uffd/default_config.cfg
+++ b/uffd/default_config.cfg
@@ -9,7 +9,12 @@ USER_SERVICE_MAX_UID=19999
 GROUP_MIN_GID=20000
 GROUP_MAX_GID=49999
 
+# The period of time that a login lasts for.
 SESSION_LIFETIME_SECONDS=3600
+
+# The period of time that the session cookie lasts for. This is refreshed on each page load.
+PERMANENT_SESSION_LIFETIME=2678400
+
 # CSRF protection
 SESSION_COOKIE_SECURE=True
 SESSION_COOKIE_HTTPONLY=True
diff --git a/uffd/session/views.py b/uffd/session/views.py
index 4d578fc29f3d28599eb78b82d3aa1f7f6f985ae5..690397bc10736f925d1c634c83a50790d3f25f19 100644
--- a/uffd/session/views.py
+++ b/uffd/session/views.py
@@ -49,6 +49,7 @@ def logout():
 
 def set_session(user, skip_mfa=False):
 	session.clear()
+	session.permanent = True
 	session['user_id'] = user.id
 	session['logintime'] = datetime.datetime.now().timestamp()
 	session['_csrf_token'] = secrets.token_hex(128)