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

CORS i credentials

Object Storage Arubacloud
0 głosów
265 wizyt
pytanie zadane 21 lipca 2021 w JavaScript przez Szyszka Gaduła (3,490 p.)

Witam. Mam włączone corsy:

            services.AddCors(cfg =>
            {
                cfg.AddDefaultPolicy(cfgPolicy =>
                {
                    cfgPolicy.AllowAnyMethod()
                    .AllowAnyHeader()
                    .WithOrigins(Origins.SafeChatView)
                    .AllowCredentials();
                });
            });

i wszystko niby działa. Ale do pewnego momentu. Kiedy wyślę żądanie, które wymaga autoryzacji otrzymuję CORS error wyglądający tak:

Access to XMLHttpRequest at 'https://localhost:5000/api/chat/group/join' from origin 'https://localhost:4200' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

I zaznaczę raz jeszcze, że ten błąd wywala tylko w żądaniach wymagających autoryzacji i tylko wtedy, jeśli autoryzacja się nie powiedzie. Do tego błędu tego nie wywala wykonując żądanie w Postmanie. Dlaczego? Dzięki za pomoc.

komentarz 21 lipca 2021 przez ScriptyChris Mędrzec (190,190 p.)

Pokaż proszę screen z zakładki Headers w panelu Networku devtoolsów przeglądarki, a konkretnie nagłówki żądania i odpowiedzi oraz to samo dla requestu preflight, jeśli wystąpił.

komentarz 21 lipca 2021 przez Szyszka Gaduła (3,490 p.)
Już mam rozwiązanie, zobacz, niżej jest najlepsza odpowiedź :). Ale dzięki za chęci :D
komentarz 21 lipca 2021 przez ScriptyChris Mędrzec (190,190 p.)

Na oko, to oba URL'e mają inne domeny, bo wysyłasz request będąc na stronie załadowanej z portu 4200 pod endpoint na porcie 5000. Nie masz ustawionego jakiegoś przekierowania, gdy autoryzacja się nie powiedzie?

komentarz 21 lipca 2021 przez Wiciorny Ekspert (270,110 p.)

ja uważam że to kwestia tego, iż on nie ogranicza rodzaju metod i przepustowości na cors... a przesyła credentional 

cfgPolicy.AllowAnyMethod() - to przejdzie 
  .AllowAnyHeader() -> nie przejdzie  taka polityka heder

ale nie przejdzie  

taka polityka nie może być przy creditionalach w sensie 

https://stackoverflow.com/questions/43114750/header-in-the-response-must-not-be-the-wildcard-when-the-requests-credentia

komentarz 21 lipca 2021 przez ScriptyChris Mędrzec (190,190 p.)
Możliwe, dlatego zapytałem o screen z przesyłanych i odbieranych nagłówków, żeby sprawdzić co tam ze sobą koliduje. :)
komentarz 21 lipca 2021 przez Szyszka Gaduła (3,490 p.)
Panowie, problem już rozwiązany :)
1
komentarz 21 lipca 2021 przez Wiciorny Ekspert (270,110 p.)
tylko nie sztuką jest na pałe rozwiązać problem, typu "działa bo coś wkleiłem" tylko zrozumieć, dlaczego nie działało i jakie sa inne możliwe rozwiązania lub też czy ta zmiana nie powoduje jakiegoś skutku ubocznego i przez niego "magicznie działa " :)
komentarz 21 lipca 2021 przez Szyszka Gaduła (3,490 p.)
Wychodzi na to, że on challenge nie dodaje nagłówków automatycznie i trzeba to robić ręcznie. No nie mam innego pomysłu, dlaczego tak by się działo. Robiłem to co proponowaliście i to nie zadziałało.

1 odpowiedź

+1 głos
odpowiedź 21 lipca 2021 przez niezalogowany
wybrane 21 lipca 2021 przez Szyszka
komentarz 21 lipca 2021 przez Szyszka Gaduła (3,490 p.)
No ale właśnie w tym problem, że ja mam corsy włączone. A ten błąd wyskakuje tylko kiedy żądanie wymaga autoryzacji i ta autoryzacja się nie powiedzie.
komentarz 21 lipca 2021 przez niezalogowany
komentarz 21 lipca 2021 przez Szyszka Gaduła (3,490 p.)
O, dzięki. Przydało się, i do tego chyba muszę zacząć korzystać z F12 od Firefoxa :). A ogółem to musiałem w OnChallenge ręcznie dodać dwa nagłówki. Tak wygląda rozwiązanie dla ASP NET Core: https://pastebin.com/Kf9Qu47r
komentarz 21 lipca 2021 przez niezalogowany

Super wink

Nie ma za co!

komentarz 21 lipca 2021 przez Wiciorny Ekspert (270,110 p.)

@Szyszka, twoje korsy pozwalają na każde metody... ale przy creditionalach nie możes zrobić AllowAllMethods, nie zezwol iCORS na dopuszczanie każdego endpointu jesli ustawione sa creditionale. 

Podobne pytania

0 głosów
2 odpowiedzi 454 wizyt
pytanie zadane 12 grudnia 2017 w PHP przez CenterPL Pasjonat (19,070 p.)
0 głosów
2 odpowiedzi 692 wizyt
pytanie zadane 7 sierpnia 2020 w JavaScript przez grb Nowicjusz (230 p.)
+1 głos
0 odpowiedzi 457 wizyt
pytanie zadane 31 lipca 2020 w JavaScript przez niffe33 Nowicjusz (150 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 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!

...