Estoy probando la nueva API Fetch pero tengo problemas con las cookies. Específicamente, después de un inicio de sesión exitoso, hay un encabezado de Cookie en futuras solicitudes, pero Fetch parece ignorar esos encabezados, y todas mis solicitudes realizadas con Fetch no están autorizadas.
¿Es porque Fetch todavía no está listo o Fetch no funciona con Cookies?
Construyo mi aplicación con Webpack. También uso Fetch en React Native, que no tiene el mismo problema.
same-origin
(que lo hace todavía trabajo) significa que más cabeceras serán respetados (galletas, etc.), pero su código tendrán un acceso limitado a la respuesta.document.cookie
, pero aún está disponible para ajax o buscar solicitudes.Además de la respuesta de @ Khanetor, para aquellos que trabajan con solicitudes de origen cruzado:
credentials: 'include'
Ejemplo de solicitud de búsqueda JSON:
https://developer.mozilla.org/en-US/docs/Web/API/Request/credentials
fuente
document.cookie
era suficiente para que se incluyera en las solicitudes.Acabo de resolver. Solo dos f. días de brutforce
Para mí el secreto estaba en seguir:
Llamé a POST / api / auth y vi que las cookies se recibieron con éxito.
Luego llamé a GET / api / users / with
credentials: 'include'
y obtuve 401 unauth, debido a que no se enviaron cookies con la solicitud.La CLAVE es establecer también
credentials: 'include'
la primera/api/auth
llamada.fuente
credentials: 'include'
para el primeroPOST /api/auth
Si está leyendo esto en 2019,
credentials: "same-origin"
es el valor predeterminado.fuente
Simplemente agregue a las respuestas correctas aquí para los
.net
webapi2
usuarios.Si está utilizando
cors
porque su sitio de cliente se sirve desde una dirección diferente a la suya,webapi
entonces debe incluir tambiénSupportsCredentials=true
en la configuración del lado del servidor.fuente
Esto funciona para mi:
Luego construya su llamada:
fuente