@@ -459,6 +459,8 @@ export class UserService {
459
459
if ( true === isPasskey && false === userData ?. isFidoVerified ) {
460
460
throw new UnauthorizedException ( ResponseMessages . user . error . registerFido ) ;
461
461
}
462
+ // called seprate method to delete exp session
463
+ this . userRepository . deleteInactiveSessions ( userData ?. id ) ;
462
464
const userSessionDetails = await this . userRepository . fetchUserSessions ( userData ?. id ) ;
463
465
if ( Number ( process . env . SESSIONS_LIMIT ) <= userSessionDetails ?. length ) {
464
466
throw new BadRequestException ( ResponseMessages . user . error . sessionLimitReached ) ;
@@ -474,13 +476,16 @@ export class UserService {
474
476
}
475
477
// eslint-disable-next-line @typescript-eslint/no-explicit-any
476
478
const decodedToken : any = jwt . decode ( tokenDetails ?. access_token ) ;
479
+ const expiresAt = new Date ( decodedToken . exp * 1000 ) ;
480
+
477
481
const sessionData = {
478
482
id : decodedToken . sid ,
479
483
sessionToken : tokenDetails ?. access_token ,
480
484
userId : userData ?. id ,
481
485
expires : tokenDetails ?. expires_in ,
482
486
refreshToken : tokenDetails ?. refresh_token ,
483
- sessionType : SessionType . USER_SESSION
487
+ sessionType : SessionType . USER_SESSION ,
488
+ expiresAt
484
489
} ;
485
490
486
491
const fetchAccountDetails = await this . userRepository . checkAccountDetails ( userData ?. id ) ;
@@ -555,13 +560,17 @@ export class UserService {
555
560
if ( ! deletePreviousSession ) {
556
561
throw new InternalServerErrorException ( ResponseMessages . user . error . errorInDeleteSession ) ;
557
562
}
563
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
564
+ const decodedToken : any = jwt . decode ( tokenResponse ?. access_token ) ;
565
+ const expiresAt = new Date ( decodedToken . exp * 1000 ) ;
558
566
const sessionData = {
559
567
sessionToken : tokenResponse . access_token ,
560
568
userId : userByKeycloakId ?. [ 'id' ] ,
561
569
expires : tokenResponse . expires_in ,
562
570
refreshToken : tokenResponse . refresh_token ,
563
571
sessionType : SessionType . USER_SESSION ,
564
- accountId : userAccountDetails . id
572
+ accountId : userAccountDetails . id ,
573
+ expiresAt
565
574
} ;
566
575
const addSessionDetails = await this . userRepository . createSession ( sessionData ) ;
567
576
if ( ! addSessionDetails ) {
@@ -1335,13 +1344,4 @@ export class UserService {
1335
1344
throw new RpcException ( error . response ? error . response : error ) ;
1336
1345
}
1337
1346
}
1338
-
1339
- async deleteInActiveSessions ( ) : Promise < number > {
1340
- try {
1341
- return await this . userRepository . deleteInactiveSessions ( ) ;
1342
- } catch ( error ) {
1343
- this . logger . error ( `Error in deleting in-active sessions` ) ;
1344
- throw new RpcException ( error . response ? error . response : error ) ;
1345
- }
1346
- }
1347
1347
}
0 commit comments