You are correct in your understanding: the authenticated_at field in the Ory Kratos session object represents the time of the most recent successful authentication (such as a login or a session refresh). If a user has an active session and continues to use your platform without re-authenticating (i.e., without logging in again or refreshing their session), the authenticated_at value will
not change. It only updates when the user actually re-authenticates or explicitly refreshes their session (for example, after a password change or when prompted for multi-factor authentication) [Session-management Overview](
https://www.ory.sh/docs/kratos/session-management/overview) [Refreshing a session](
https://www.ory.sh/docs/kratos/self-service/flows/user-login#refreshing-a-session). So, if you are looking for a reliable "last login" timestamp, authenticated_at is accurate for that purpose. However, it does
not reflect ongoing activity within an active session. If a user stays logged in for days without re-authenticating, authenticated_at will remain unchanged during that period.
Summary: - authenticated_at = last login or last session refresh - It does
not update on every user activity with an active session - It is reliable for "last login," but not for "last seen" or "last activity" tracking If you need "last seen," you will need to implement that tracking yourself in your application logic.