• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Angulars nie wysyła cookies

Object Storage Arubacloud
0 głosów
360 wizyt
pytanie zadane 4 stycznia 2021 w JavaScript przez michal_php Stary wyjadacz (13,700 p.)
zamknięte 5 stycznia 2021 przez michal_php

Cześć.

Mam problem w sowim projekcie z wysyłanie nagłówków cookies przez Angulara 9.

Klasa dodająca do nagłówek authenticaation i cookies

@Injectable()
export class JwtInterceptor implements HttpInterceptor {

  constructor(
    private authenticationService: AuthenticationServiceService,
    private cookiesService: CookieService,
    ) {
  }

  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {

    const cookies = this.cookiesService.get('2fa_auth');
    const currentUser = this.authenticationService.currentUserValue;

    if (currentUser && currentUser.token) {

      req = req.clone({
        setHeaders: {
          Authorization: `Bearer ${currentUser.token}`,
          Cookie: `2fa_auth=${cookies};`,
        }
      });
    }
    
    return next.handle(req);
  }

}

i mój module odpowiedzialny za podpięcie tej klasy:

providers: [
    {provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true},
    {provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true},
    CookieService
  ],

Problem jest taki, że po wysłaniu zapytania nie ma w nagłówku w ogóle cookies.

Przyznam, że nie wiem gdzie robię błąd. Z góry dziękuje za wskazówkę.

komentarz zamknięcia: Znalazłem swój błąd. Problemem było źle ustawiony nagłówek.
1
komentarz 6 stycznia 2021 przez michal_php Stary wyjadacz (13,700 p.)
Problem dokładnie leżał na back-enddzie. Brakowało dodanie Cookies do allow_headers Nie wiem czemu na postmanie działo bez tego a na angularze nie.
komentarz 6 stycznia 2021 przez Wiciorny Ekspert (270,230 p.)

no to jest tpo co pisałem ze problem bedzie po stronie konfiguracji bo parametr Authorization 

withCredentials: true

juz z automatu powinien dodawac cookie 

1
komentarz 6 stycznia 2021 przez michal_php Stary wyjadacz (13,700 p.)
Zgadza się problem był na bac-endzie. Tylko dziwne, że postman bez problemu wysyłał a cookie a angular już nie.
komentarz 6 stycznia 2021 przez ScriptyChris Mędrzec (190,190 p.)

Możliwe że dlatego, że Postman nie ma mechanizmu Same-Origin-Policy (albo jest domyślnie wyłączony) w przeciwieństwie do przeglądarki. Dlatego Postmanowi nie przeszkadza brak nagłówków Access-Control-* z serwera.

komentarz 6 stycznia 2021 przez michal_php Stary wyjadacz (13,700 p.)
W sumie racja to miało by sens.

Chciałbym wam podziękować za pomoc i poświęcony czas w rozwiązaniu tego problemu.

1 odpowiedź

0 głosów
odpowiedź 4 stycznia 2021 przez Wiciorny Ekspert (270,230 p.)

Pytanie takie czy w lini nie przypadkiem, nie powinno usunąc się średnika ? 

    Cookie: `2fa_auth=${cookies};`,

 

komentarz 5 stycznia 2021 przez Wiciorny Ekspert (270,230 p.)
withCredentials, Set-Cookiew odpowiedzi zostanie ustawiona przez klienta, ale klient nadal nie wyśle Cookie w żądaniu (które zostało ustawione przy poprzednim żądaniu)
https://angular.io/guide/deprecations#http

withCredentials: true. -> to Ci praktycznie nie działa, lub konfiguracja Credentionali jest błędna bo wystarczy to dodać  :) żeby uzyskać cookie.
Nie wiem jak wygląda konfiguracja Interceptora. Błąd wynika z konfiguracji creditionali w takim razie, skoro przy użyciu  opcji true nie ma cookie domyślnie.
komentarz 5 stycznia 2021 przez michal_php Stary wyjadacz (13,700 p.)

withCredentials, Set-Cookiew odpowiedzi zostanie ustawiona przez klienta, ale klient nadal nie wyśle Cookie w żądaniu (które zostało ustawione przy poprzednim żądaniu)

Nie bardzo rozumiem co masz na myśli mówiąc w poprzednim  żądaniu ? 

withCredentials: true. -> to Ci praktycznie nie działa, lub konfiguracja Credentionali jest błędna bo wystarczy to dodać  :)

Ale co wystarczy dodać ? 

komentarz 5 stycznia 2021 przez Wiciorny Ekspert (270,230 p.)
  withCredentials: true

jeśli napisałbyś poprawną konfiguracje, automatycznie cookies były by dodawane.  jeśli zastosoujesz Credentials na true. 

1
komentarz 5 stycznia 2021 przez michal_php Stary wyjadacz (13,700 p.)

withCredentials: true

 Przecież mam w kodzie już  withCredentials: true :

req = req.clone({
        withCredentials: true,
        setHeaders: {
          Authorization: `Bearer ${currentUser.token}`,
        }
      });
    }

Czy to jest w takim razie nie poprawne ?

jeśli zastosoujesz Credentials na true

Rozumiem, że Ci chodzi o  withCredentials wink

jeśli napisałbyś poprawną konfiguracje

Co jest nie poprawnego w mojej konfiguracji bo nie kumam  

komentarz 6 stycznia 2021 przez Wiciorny Ekspert (270,230 p.)

mówiłem, że niepoprawnie ustawiłeś konfiguracje dla zapisywania dla listy uwierzytelnienia [withCredentials ] przez co  nie bylo cookie 

Podobne pytania

0 głosów
1 odpowiedź 150 wizyt
pytanie zadane 15 listopada 2022 w JavaScript przez ferdynand Obywatel (1,250 p.)
0 głosów
1 odpowiedź 162 wizyt
pytanie zadane 3 września 2020 w JavaScript przez poldeeek Mądrala (5,980 p.)

92,583 zapytań

141,434 odpowiedzi

319,668 komentarzy

61,966 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...