Wypróbowuję nowy interfejs API pobierania, ale mam problem z plikami cookie. W szczególności, po udanym zalogowaniu się, w przyszłych żądaniach pojawia się nagłówek Cookie, ale Fetch wydaje się ignorować te nagłówki, a wszystkie moje żądania złożone za pomocą Fetch są nieautoryzowane.
Czy to dlatego, że pobieranie nie jest jeszcze gotowe lub pobieranie nie działa z plikami cookie?
Buduję swoją aplikację za pomocą pakietu Webpack. Używam również Fetch w React Native, który nie ma tego samego problemu.
same-origin
(który ma jeszcze pracę) oznacza, że więcej nagłówki będą przestrzegane (cookies, etc), ale kod będzie mieć ograniczony dostęp do odpowiedzi.document.cookie
, ale nadal jest dostępny dla żądań ajax lub pobierania.Oprócz odpowiedzi @ Khanetor, dla tych, którzy pracują z wnioskami z różnych źródeł:
credentials: 'include'
Przykładowe żądanie pobierania JSON:
https://developer.mozilla.org/en-US/docs/Web/API/Request/credentials
źródło
document.cookie
wystarczyło, aby uwzględnić ją w żądaniach.Właśnie rozwiązałem. Tylko dwa f. dni brutalnej siły
Dla mnie sekret był następujący:
Zadzwoniłem do POST / api / auth i przekonałem się, że pliki cookie zostały pomyślnie odebrane.
Następnie wywołując GET / api / users /
credentials: 'include'
i otrzymałem 401 nieautoryzowanych informacji, ponieważ z prośbą nie wysłano żadnych plików cookie.Klawisz należy ustawić również
credentials: 'include'
dla pierwszego/api/auth
połączenia.źródło
credentials: 'include'
jako pierwszyPOST /api/auth
Jeśli czytasz to w 2019 roku,
credentials: "same-origin"
jest wartością domyślną.źródło
Dodam tylko prawidłowe odpowiedzi tutaj dla
.net
webapi2
użytkowników.Jeśli używasz,
cors
ponieważ witryna klienta jest obsługiwana z innego adresu niż twójwebapi
, musisz również uwzględnićSupportsCredentials=true
konfigurację po stronie serwera.źródło
To działa dla mnie:
Następnie zbuduj połączenie:
źródło