Mon client angulaire est séparé du backend et j'ai activé les cors sur le backend, tout fonctionne bien sauf le fait que mon authentification échoue car le cookie n'est pas ajouté aux requêtes.
Après avoir fait des recherches en ligne, j'ai trouvé que je devais mettre {withCredentials : true}
sur chaque requête http. J'ai réussi à le faire sur une seule requête et ça marche, mais pas sur toutes les requêtes.
J'ai essayé d'utiliser BrowserXhr Comment envoyer "Cookie" dans l'en-tête de la demande pour toutes les demandes en Angular2 ? mais cela ne fonctionne pas et c'est également déprécié.
J'ai également essayé RequestOptions mais cela n'a pas fonctionné.
Que puis-je faire pour définir {withCredentials : true} sur chaque requête http ?
Édition ultérieure :
@Injectable()
export class ConfigInterceptor implements HttpInterceptor {
constructor(private csrfService: CSRFService) {
}
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
let token = this.csrfService.getCSRF() as string;
const credentialsReq = req.clone({withCredentials : true, setHeaders: { "X-XSRF-TOKEN": token } });
return next.handle(credentialsReq);
}
}