@@ -4,6 +4,7 @@ import { AppState } from 'store/reducers';
4
4
import { hentInnloggingsstatus , fornyInnlogging } from 'store/reducers/innloggingsstatus-duck' ;
5
5
import { getLogOutUrl , getLoginUrl } from 'utils/login' ;
6
6
import { useLoginDebug } from './useLoginDebug' ;
7
+ import { logAmplitudeEvent } from '../analytics/amplitude' ;
7
8
8
9
const stateSelector = ( state : AppState ) => ( {
9
10
innloggetStatus : state . innloggingsstatus . data ,
@@ -13,7 +14,8 @@ const stateSelector = (state: AppState) => ({
13
14
14
15
let timeoutId : NodeJS . Timeout | null = null ;
15
16
16
- let didLogExpiry = false ;
17
+ const logPeriodMs = 60000 ;
18
+ let lastExpireLog = 0 ;
17
19
18
20
export const useLoginStatus = ( ) => {
19
21
const dispatch = useDispatch ( ) ;
@@ -72,14 +74,19 @@ export const useLoginStatus = () => {
72
74
73
75
const _isTokenExpiring = _innloggetStatus . authenticated && secondsToTokenExpires < 60 * 5 ;
74
76
const _isSessionExpiring = secondsToSessionExpires < 60 * 10 ;
77
+ const now = new Date ( ) ;
75
78
76
- if ( ( _isTokenExpiring || _isSessionExpiring ) && ! didLogExpiry ) {
77
- console . error (
78
- `Session is timing out - Now: ${ new Date ( ) . toISOString ( ) } - Session: ${ secondsToSessionExpires } / ${
79
- _innloggetStatus . session . endsAt
80
- } - Token: ${ secondsToTokenExpires } / ${ _innloggetStatus . token . endsAt } `
81
- ) ;
82
- didLogExpiry = true ;
79
+ if ( ( _isTokenExpiring || _isSessionExpiring ) && now . getTime ( ) > lastExpireLog + logPeriodMs ) {
80
+ logAmplitudeEvent ( 'session-timeout' , {
81
+ now : now . toISOString ( ) ,
82
+ session : _innloggetStatus . session ,
83
+ token : _innloggetStatus . token ,
84
+ secondsToSessionExpires,
85
+ secondsToTokenExpires,
86
+ securityLevel : _innloggetStatus . securityLevel ,
87
+ } ) ;
88
+
89
+ lastExpireLog = now . getTime ( ) ;
83
90
}
84
91
85
92
setIsTokenExpiring ( _isTokenExpiring ) ;
0 commit comments