Angular 6 no agrega el encabezado X-XSRF-TOKEN a la solicitud http
He leídothe docs y todas las preguntas relacionadas sobre SO, pero aún así el mecanismo XSRF de Angular no funciona para mí: de ninguna manera puedo hacer una solicitud POST con el encabezado X-XSRF-TOKEN agregado automáticamente.
Tengo una aplicación Angular 6 con un formulario de inicio de sesión.
Es parte de un sitio web de Symfony (PHP 7.1), y la página de la aplicación Angular, cuando se sirve desde Symfony, envía la cookie correcta XSRF-TOKEN
):
My app.module.ts incluye los módulos correctos:
// other imports...
import {HttpClientModule, HttpClientXsrfModule} from "@angular/common/http";
// ...
@NgModule({
declarations: [
// ...
],
imports: [
NgbModule.forRoot(),
BrowserModule,
// ...
HttpClientModule,
HttpClientXsrfModule.withOptions({
cookieName: 'XSRF-TOKEN',
headerName: 'X-CSRF-TOKEN'
}),
// other imports
],
providers: [],
entryComponents: [WarningDialog],
bootstrap: [AppComponent]
})
export class AppModule {
}
Luego, dentro del método de un Servicio, estoy haciendo la siguiente solicitud http this.http
es una instancia deHttpClient
):
this.http
.post<any>('api/login', {'_username': username, '_pass': password})
.subscribe(/* handler here */);
La solicitud de publicación nunca envía el encabezado X-XSRF-TOKEN. ¿Por qué