NestJS module for session revocation via Hydra Backchannel Logout
npm install foxia-auth-logoutNestJS module for session revocation via Hydra Backchannel Logout. Supports Single Sign Out (SLO).

``bash`
npm install foxia-auth-logout
`typescript
import { SessionRevocationModule } from 'foxia-auth-logout';
@Module({
imports: [
SessionRevocationModule.forRootAsync({
imports: [ConfigModule],
inject: [ConfigService],
useFactory: (config: ConfigService) => ({
redis: {
host: config.get('REDIS_HOST', 'localhost'),
port: config.get('REDIS_PORT', 6379),
},
sidClaim: 'sid', // claim trong JWT chứa session ID
ttl: 86400, // 1 day
}),
}),
],
})
export class AppModule {}
`
`typescript
import { SessionRevocationGuard } from 'foxia-auth-logout';
// Thêm bên cạnh guard auth hiện có
@Controller('users')
@UseGuards(JwtAuthGuard, SessionRevocationGuard)
export class UsersController {}
// Hoặc global
app.useGlobalGuards(
app.get(JwtAuthGuard),
app.get(SessionRevocationGuard),
);
`
`typescript
import { Public } from 'foxia-auth-logout';
@Get('health')
@Public()
health() { return { status: 'ok' }; }
`
`bash`
curl -X PATCH http://hydra-admin:4445/admin/clients/YOUR_CLIENT \
-d '{"backchannel_logout_uri": "https://your-app.com/logout/backchannel"}'
```
Logout → Hydra → POST /logout/backchannel → Redis (blacklist SID)
↓
Request → Guard decode JWT → SID in blacklist? → 401
MIT