fix(session): add auto-refresh for expired JWT tokens

- Add isTokenValid() to decode JWT and check exp claim
- Refresh tokens 60 seconds before expiry (buffer)
- Auto-fetch fresh token via SSO-Link when cached token expires
- Clear invalid sessions when refresh fails
- Prevents "exp claim timestamp check failed" errors

JWT tokens from mana-core-auth expire after 15 minutes, but sessions
were cached for 7 days. Now tokens are transparently refreshed when
they expire, keeping users authenticated.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Till-JS 2026-02-14 12:19:08 +01:00
parent 4b950b7083
commit acf4512e90
6 changed files with 335 additions and 11 deletions

View file

@ -3,6 +3,7 @@ import { MatrixService } from './matrix.service';
import { AnalyticsModule } from '../analytics/analytics.module';
import { UsersModule } from '../users/users.module';
import { InfrastructureModule } from '../infrastructure/infrastructure.module';
import { MyDataModule } from '../mydata/mydata.module';
import { TranscriptionModule, SessionModule, CreditModule } from '@manacore/bot-services';
@Module({
@ -10,6 +11,7 @@ import { TranscriptionModule, SessionModule, CreditModule } from '@manacore/bot-
AnalyticsModule,
UsersModule,
InfrastructureModule,
MyDataModule,
TranscriptionModule.register({
sttUrl: process.env.STT_URL || 'http://localhost:3020',
}),