fix(login): default lifetime, show expiration on accounts page (#10297)

This PR fixes an issue where the password lifetime was not applied
correctly in certain scenarios.
It also improves the sessions page by providing more information about
expiration and verification timestamps and a mobile layout for clearing
sessions.
<img width="506" height="760" alt="Screenshot 2025-07-22 at 08 56 14"
src="https://github.com/user-attachments/assets/1e621ca2-206c-4931-b27d-9592eebc646e"
/>

Closes https://github.com/zitadel/typescript/issues/481
This commit is contained in:
Max Peintner
2025-07-22 11:18:15 +02:00
committed by GitHub
parent 9b0e5bf714
commit a3e1d6a3ff
23 changed files with 467 additions and 257 deletions
+201
View File
@@ -421,6 +421,9 @@ importers:
'@heroicons/react':
specifier: 2.1.3
version: 2.1.3([email protected])
'@radix-ui/react-tooltip':
specifier: ^1.2.7
version: 1.2.7(@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])
'@tailwindcss/forms':
specifier: 0.5.7
version: 0.5.7([email protected])
@@ -4259,6 +4262,19 @@ packages:
'@types/react-dom':
optional: true
'@radix-ui/[email protected]':
resolution: {integrity: sha512-Ap+fNYwKTYJ9pzqW+Xe2HtMRbQ/EeWkj2qykZ6SuEV4iS/o1bZI5ssJbk4D2r8XuDuOBVz/tIx2JObtuqU+5Zw==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
optional: true
'@types/react-dom':
optional: true
'@radix-ui/[email protected]':
resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==}
peerDependencies:
@@ -4398,6 +4414,19 @@ packages:
'@types/react-dom':
optional: true
'@radix-ui/[email protected]':
resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
optional: true
'@types/react-dom':
optional: true
'@radix-ui/[email protected]':
resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==}
@@ -19496,6 +19525,15 @@ snapshots:
'@types/react': 19.1.2
'@types/react-dom': 19.1.2(@types/[email protected])
'@radix-ui/[email protected](@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])':
dependencies:
'@radix-ui/react-primitive': 2.1.3(@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])
react: 19.1.0
react-dom: 19.1.0([email protected])
optionalDependencies:
'@types/react': 19.1.2
'@types/react-dom': 19.1.2(@types/[email protected])
'@radix-ui/[email protected](@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])':
dependencies:
'@radix-ui/react-context': 1.1.1(@types/[email protected])([email protected])
@@ -19548,6 +19586,12 @@ snapshots:
optionalDependencies:
'@types/react': 19.1.2
'@radix-ui/[email protected](@types/[email protected])([email protected])':
dependencies:
react: 19.1.0
optionalDependencies:
'@types/react': 19.1.2
'@radix-ui/[email protected](@types/[email protected])([email protected])':
dependencies:
react: 18.3.1
@@ -19560,6 +19604,12 @@ snapshots:
optionalDependencies:
'@types/react': 19.1.2
'@radix-ui/[email protected](@types/[email protected])([email protected])':
dependencies:
react: 19.1.0
optionalDependencies:
'@types/react': 19.1.2
'@radix-ui/[email protected](@types/[email protected])([email protected])':
dependencies:
react: 18.3.1
@@ -19585,6 +19635,19 @@ snapshots:
'@types/react': 19.1.2
'@types/react-dom': 19.1.2(@types/[email protected])
'@radix-ui/[email protected](@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])':
dependencies:
'@radix-ui/primitive': 1.1.2
'@radix-ui/react-compose-refs': 1.1.2(@types/[email protected])([email protected])
'@radix-ui/react-primitive': 2.1.3(@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])
'@radix-ui/react-use-callback-ref': 1.1.1(@types/[email protected])([email protected])
'@radix-ui/react-use-escape-keydown': 1.1.1(@types/[email protected])([email protected])
react: 19.1.0
react-dom: 19.1.0([email protected])
optionalDependencies:
'@types/react': 19.1.2
'@types/react-dom': 19.1.2(@types/[email protected])
'@radix-ui/[email protected](@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])':
dependencies:
'@radix-ui/primitive': 1.1.1
@@ -19676,6 +19739,13 @@ snapshots:
optionalDependencies:
'@types/react': 19.1.2
'@radix-ui/[email protected](@types/[email protected])([email protected])':
dependencies:
'@radix-ui/react-use-layout-effect': 1.1.1(@types/[email protected])([email protected])
react: 19.1.0
optionalDependencies:
'@types/react': 19.1.2
'@radix-ui/[email protected](@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])':
dependencies:
'@radix-ui/primitive': 1.1.1
@@ -19753,6 +19823,24 @@ snapshots:
'@types/react': 19.1.2
'@types/react-dom': 19.1.2(@types/[email protected])
'@radix-ui/[email protected](@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])':
dependencies:
'@floating-ui/react-dom': 2.1.4([email protected]([email protected]))([email protected])
'@radix-ui/react-arrow': 1.1.7(@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])
'@radix-ui/react-compose-refs': 1.1.2(@types/[email protected])([email protected])
'@radix-ui/react-context': 1.1.2(@types/[email protected])([email protected])
'@radix-ui/react-primitive': 2.1.3(@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])
'@radix-ui/react-use-callback-ref': 1.1.1(@types/[email protected])([email protected])
'@radix-ui/react-use-layout-effect': 1.1.1(@types/[email protected])([email protected])
'@radix-ui/react-use-rect': 1.1.1(@types/[email protected])([email protected])
'@radix-ui/react-use-size': 1.1.1(@types/[email protected])([email protected])
'@radix-ui/rect': 1.1.1
react: 19.1.0
react-dom: 19.1.0([email protected])
optionalDependencies:
'@types/react': 19.1.2
'@types/react-dom': 19.1.2(@types/[email protected])
'@radix-ui/[email protected](@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])':
dependencies:
'@radix-ui/react-primitive': 2.0.1(@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])
@@ -19783,6 +19871,16 @@ snapshots:
'@types/react': 19.1.2
'@types/react-dom': 19.1.2(@types/[email protected])
'@radix-ui/[email protected](@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])':
dependencies:
'@radix-ui/react-primitive': 2.1.3(@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])
'@radix-ui/react-use-layout-effect': 1.1.1(@types/[email protected])([email protected])
react: 19.1.0
react-dom: 19.1.0([email protected])
optionalDependencies:
'@types/react': 19.1.2
'@types/react-dom': 19.1.2(@types/[email protected])
'@radix-ui/[email protected](@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])':
dependencies:
'@radix-ui/react-compose-refs': 1.1.1(@types/[email protected])([email protected])
@@ -19803,6 +19901,16 @@ snapshots:
'@types/react': 19.1.2
'@types/react-dom': 19.1.2(@types/[email protected])
'@radix-ui/[email protected](@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])':
dependencies:
'@radix-ui/react-compose-refs': 1.1.2(@types/[email protected])([email protected])
'@radix-ui/react-use-layout-effect': 1.1.1(@types/[email protected])([email protected])
react: 19.1.0
react-dom: 19.1.0([email protected])
optionalDependencies:
'@types/react': 19.1.2
'@types/react-dom': 19.1.2(@types/[email protected])
'@radix-ui/[email protected](@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])':
dependencies:
'@radix-ui/react-slot': 1.1.1(@types/[email protected])([email protected])
@@ -19830,6 +19938,15 @@ snapshots:
'@types/react': 19.1.2
'@types/react-dom': 19.1.2(@types/[email protected])
'@radix-ui/[email protected](@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])':
dependencies:
'@radix-ui/react-slot': 1.2.3(@types/[email protected])([email protected])
react: 19.1.0
react-dom: 19.1.0([email protected])
optionalDependencies:
'@types/react': 19.1.2
'@types/react-dom': 19.1.2(@types/[email protected])
'@radix-ui/[email protected](@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])':
dependencies:
'@radix-ui/primitive': 1.1.2
@@ -19885,6 +20002,13 @@ snapshots:
optionalDependencies:
'@types/react': 19.1.2
'@radix-ui/[email protected](@types/[email protected])([email protected])':
dependencies:
'@radix-ui/react-compose-refs': 1.1.2(@types/[email protected])([email protected])
react: 19.1.0
optionalDependencies:
'@types/react': 19.1.2
'@radix-ui/[email protected](@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])':
dependencies:
'@radix-ui/primitive': 1.1.2
@@ -19921,6 +20045,26 @@ snapshots:
'@types/react': 19.1.2
'@types/react-dom': 19.1.2(@types/[email protected])
'@radix-ui/[email protected](@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])':
dependencies:
'@radix-ui/primitive': 1.1.2
'@radix-ui/react-compose-refs': 1.1.2(@types/[email protected])([email protected])
'@radix-ui/react-context': 1.1.2(@types/[email protected])([email protected])
'@radix-ui/react-dismissable-layer': 1.1.10(@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])
'@radix-ui/react-id': 1.1.1(@types/[email protected])([email protected])
'@radix-ui/react-popper': 1.2.7(@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])
'@radix-ui/react-portal': 1.1.9(@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])
'@radix-ui/react-presence': 1.1.4(@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])
'@radix-ui/react-primitive': 2.1.3(@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])
'@radix-ui/react-slot': 1.2.3(@types/[email protected])([email protected])
'@radix-ui/react-use-controllable-state': 1.2.2(@types/[email protected])([email protected])
'@radix-ui/react-visually-hidden': 1.2.3(@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])
react: 19.1.0
react-dom: 19.1.0([email protected])
optionalDependencies:
'@types/react': 19.1.2
'@types/react-dom': 19.1.2(@types/[email protected])
'@radix-ui/[email protected](@types/[email protected])([email protected])':
dependencies:
react: 18.3.1
@@ -19933,6 +20077,12 @@ snapshots:
optionalDependencies:
'@types/react': 19.1.2
'@radix-ui/[email protected](@types/[email protected])([email protected])':
dependencies:
react: 19.1.0
optionalDependencies:
'@types/react': 19.1.2
'@radix-ui/[email protected](@types/[email protected])([email protected])':
dependencies:
'@radix-ui/react-use-callback-ref': 1.1.0(@types/[email protected])([email protected])
@@ -19948,6 +20098,14 @@ snapshots:
optionalDependencies:
'@types/react': 19.1.2
'@radix-ui/[email protected](@types/[email protected])([email protected])':
dependencies:
'@radix-ui/react-use-effect-event': 0.0.2(@types/[email protected])([email protected])
'@radix-ui/react-use-layout-effect': 1.1.1(@types/[email protected])([email protected])
react: 19.1.0
optionalDependencies:
'@types/react': 19.1.2
'@radix-ui/[email protected](@types/[email protected])([email protected])':
dependencies:
'@radix-ui/react-use-layout-effect': 1.1.1(@types/[email protected])([email protected])
@@ -19955,6 +20113,13 @@ snapshots:
optionalDependencies:
'@types/react': 19.1.2
'@radix-ui/[email protected](@types/[email protected])([email protected])':
dependencies:
'@radix-ui/react-use-layout-effect': 1.1.1(@types/[email protected])([email protected])
react: 19.1.0
optionalDependencies:
'@types/react': 19.1.2
'@radix-ui/[email protected](@types/[email protected])([email protected])':
dependencies:
'@radix-ui/react-use-callback-ref': 1.1.0(@types/[email protected])([email protected])
@@ -19969,6 +20134,13 @@ snapshots:
optionalDependencies:
'@types/react': 19.1.2
'@radix-ui/[email protected](@types/[email protected])([email protected])':
dependencies:
'@radix-ui/react-use-callback-ref': 1.1.1(@types/[email protected])([email protected])
react: 19.1.0
optionalDependencies:
'@types/react': 19.1.2
'@radix-ui/[email protected](@types/[email protected])([email protected])':
dependencies:
react: 18.3.1
@@ -19981,6 +20153,12 @@ snapshots:
optionalDependencies:
'@types/react': 19.1.2
'@radix-ui/[email protected](@types/[email protected])([email protected])':
dependencies:
react: 19.1.0
optionalDependencies:
'@types/react': 19.1.2
'@radix-ui/[email protected](@types/[email protected])([email protected])':
dependencies:
react: 18.3.1
@@ -20001,6 +20179,13 @@ snapshots:
optionalDependencies:
'@types/react': 19.1.2
'@radix-ui/[email protected](@types/[email protected])([email protected])':
dependencies:
'@radix-ui/rect': 1.1.1
react: 19.1.0
optionalDependencies:
'@types/react': 19.1.2
'@radix-ui/[email protected](@types/[email protected])([email protected])':
dependencies:
'@radix-ui/react-use-layout-effect': 1.1.0(@types/[email protected])([email protected])
@@ -20015,6 +20200,13 @@ snapshots:
optionalDependencies:
'@types/react': 19.1.2
'@radix-ui/[email protected](@types/[email protected])([email protected])':
dependencies:
'@radix-ui/react-use-layout-effect': 1.1.1(@types/[email protected])([email protected])
react: 19.1.0
optionalDependencies:
'@types/react': 19.1.2
'@radix-ui/[email protected](@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])':
dependencies:
'@radix-ui/react-primitive': 2.0.1(@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])
@@ -20024,6 +20216,15 @@ snapshots:
'@types/react': 19.1.2
'@types/react-dom': 19.1.2(@types/[email protected])
'@radix-ui/[email protected](@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])':
dependencies:
'@radix-ui/react-primitive': 2.1.3(@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])
react: 19.1.0
react-dom: 19.1.0([email protected])
optionalDependencies:
'@types/react': 19.1.2
'@types/react-dom': 19.1.2(@types/[email protected])
'@radix-ui/[email protected]': {}
'@radix-ui/[email protected]': {}