User Login stage
The User Login stage attaches a currently pending user to the current session.
It can be used after user_write during an enrollment flow, or after a password stage during an authentication flow.
User login stage configuration options
When creating or editing this stage in the Admin interface, you can define configuration options using the following fields.
Session duration
By default, the authentik session expires when you close your browser (seconds=0). Use the Session duration field to define a custom session length.
Different browsers handle session cookies differently, and might not remove them even when the browser is closed. See here for more info.
You can set the session to expire after any duration using the syntax of hours=1,minutes=2,seconds=3. The following keys are allowed:
- Microseconds
- Milliseconds
- Seconds
- Minutes
- Hours
- Days
- Weeks
All values accept floating-point values.
Stay signed in offset
When the value in Stay signed in offset is set to a higher value than the default seconds=0, the user logging in is shown a prompt, allowing the user to choose if their session should be extended or not. The same syntax as for Session duration applies.

Remember device
If set to a duration above 0, a cookie is stored for the duration specified that informs authentik whether the user is signing in from a known or unknown (new) device.
If there's an existing authenticated user session for the user with the same IP address, authentik also classifies this as a known device. See here for an example of how an alert can be configured for logins from unknown devices.
Network binding and GeoIP binding
When configured, all sessions authenticated by this stage will be bound to the selected network and/or GeoIP criteria.
Sessions that break this binding will be terminated. The created logout event will contain additional data related to what caused the binding to be broken:
{
"asn": {
"asn": 6805,
"as_org": "Telefonica Germany",
"network": "5.4.0.0/14"
},
"geo": {
"lat": 51.2993,
"city": "",
"long": 9.491,
"country": "DE",
"continent": "EU"
},
"binding": {
"reason": "network.missing",
"new_value": {
"asn": 6805,
"as_org": "Telefonica Germany",
"network": "5.4.0.0/14"
},
"previous_value": {}
},
"ip": {
"previous": "1.2.3.4",
"new": "5.6.7.8"
},
"http_request": {
"args": {},
"path": "/if/admin/",
"method": "GET",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
},
"logout_reason": "Session binding broken"
}
Terminate other sessions
When enabled, previous sessions of the same user are revoked. This has no affect on OAuth refresh tokens.