Files
IdP/apps/api-gateway/src/interceptors/fedcm-cookie.interceptor.ts
2026-07-01 14:03:57 +03:00

23 lines
778 B
TypeScript

import { CallHandler, ExecutionContext, Injectable, NestInterceptor } from '@nestjs/common';
import { JwtService } from '@nestjs/jwt';
import { Observable, mergeMap } from 'rxjs';
import type { Response } from 'express';
import { attachFedcmCookieFromAuthResult } from '../lib/fedcm-cookie';
@Injectable()
export class FedcmCookieInterceptor implements NestInterceptor {
constructor(private readonly jwt: JwtService) {}
intercept(context: ExecutionContext, next: CallHandler): Observable<unknown> {
const http = context.switchToHttp();
const response = http.getResponse<Response>();
return next.handle().pipe(
mergeMap(async (data) => {
await attachFedcmCookieFromAuthResult(response, this.jwt, data);
return data;
})
);
}
}