Skip to content
Snippets Groups Projects
Commit 3ed9961d authored by stevereis's avatar stevereis
Browse files

Fix persistence auth

parent b30bf15d
No related branches found
No related tags found
No related merge requests found
import { HttpService } from '@nestjs/axios';
import {
Injectable,
NestInterceptor,
ExecutionContext,
CallHandler,
} from '@nestjs/common';
import { Injectable, NestInterceptor, CallHandler } from '@nestjs/common';
import { GqlExecutionContext } from '@nestjs/graphql';
import { IncomingMessage } from 'http';
import { Observable } from 'rxjs';
import { Observable, tap } from 'rxjs';
@Injectable()
export class HeadersInterceptor implements NestInterceptor {
......@@ -16,21 +11,35 @@ export class HeadersInterceptor implements NestInterceptor {
intercept(context: GqlExecutionContext, next: CallHandler): Observable<any> {
// cleaner : add only the auth header (should find the name)
const keys = ['cookie', 'x-xsrf-token'];
let headers = {};
switch (context.getType()) {
case 'http': {
const ctx = context.switchToHttp();
const request = ctx.getRequest<Request>();
this.httpService.axiosRef.defaults.headers = request.headers;
headers = request.headers;
break;
}
case 'graphql': {
const ctx = GqlExecutionContext.create(context);
const req: IncomingMessage = ctx.getContext().req;
this.httpService.axiosRef.defaults.headers = req.headers;
headers = req.headers;
break;
}
}
return next.handle();
Object.keys(headers)
.filter((key) => keys.includes(key))
.map((key) => key.toLowerCase())
.forEach((key) => {
this.httpService.axiosRef.defaults.headers.common[key] = headers[key];
});
return next.handle().pipe(
tap(() => {
this.httpService.axiosRef.defaults.headers.common = {}; //cleaning request
}),
);
}
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment