Mamy problem z pobieraniem plików z serwera w tle. Pole nagłówka HTTP "Authorization" jest tracone podczas przekierowywania żądania na inny serwer.NSURLRequest utracił nagłówek HTTP "Autoryzacja" podczas przekierowania żądania.
Przeprowadziliśmy kilka eksperymentów i zauważyliśmy, że inne pola (nawet takie same, ale z podkreślonym symbolem na końcu "Authorization_") działają doskonale w przekierowaniu. Wygląda na to, że to pole jest wymazywane zgodnie z niektórymi względami bezpieczeństwa, np. Jeśli różne serwery używają innych danych uwierzytelniających.
Jest możliwe dołączenie „Authorization” pole ręcznie w trybie planie pomocą
URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:
metody. Wystąpił problem podczas próby przekierowania w tle. Ponieważ zgodnie z dokumentacją "Zadania w sesjach w tle automatycznie następują przekierowania."
Nie mogę znaleźć nic na temat pomijania tego pola w RFC 2616, ale przypuśćmy, że prawdopodobnie istnieje nieudokumentowane rozwiązanie, aby zapisać pole "Autoryzacja" podczas przekierowania w tle. .
Pozwól mi przyjąć, że nasz serwer front-end może zapewnić pewne specjalne pole w odpowiedzi przekierowania, które twierdzą, że przekierowanie serwera jest zaufany i możemy użyć „zezwolenie” pole bez jakichkolwiek modyfikacji.
to jest po prostu Pomysł i prawdopodobnie musimy go użyć jakoś inaczej. Czy mógłbyś skierować nas proszę?
Dziękuję, Rafał. Miałem rozmowę z inżynierem Apple w WWDC Lab na temat tego pytania i zgodził się, że może to być dobre rozwiązanie do używania niestandardowego pola, takiego jak "Authorization_" (z podkreśleniem). Wygląda jak hack, ale działa w tle zgodnie z oczekiwaniami – gN0Me