Nie możesz. Tak nie działa HTTP. Po pierwsze, "przekierowanie" to tylko kod stanu 301, 302 lub (od HTTP 1.1) 307 z nagłówkiem Location
ustawionym na adres URL, do którego powinien przejść klient. Klient inicjuje żądanie do tego adresu URL, więc nie masz wpływu na to, jakie nagłówki wysyłają.
Po drugie, HTTP jest bezpaństwowcem, więc fakt, że nagłówek Authorization
został wysłany w jakiejś odpowiedzi w pewnym momencie, ma zero mając na uwadze wszystko, co dzieje się w przyszłych zamówieniach. Przeglądarki internetowe i inne klienty HTTP omijają bezpaństwowy charakter protokołu HTTP, używając sesji po stronie serwera i plików cookie po stronie klienta. Klient przesyła plik cookie do serwera wraz z żądaniem. Plik cookie pasuje do pozycji w magazynie sesji na serwerze, a serwer ładuje dane z tej sesji, aby wyglądał tak, jakby był utrzymywany stan.
Po trzecie, pliki cookie nie działają w tej sytuacji, ponieważ są powiązane z domeną i nie są wysyłane wraz z żądaniami do domen, z których nie pochodzą. Tak więc, nawet jeśli utworzysz sesję, aby zachować autoryzację, druga strona nigdy jej nie zobaczy.
FWIW, podstawowa zasada tutaj, dzieląca stan uwierzytelnienia z inną domeną, to dokładnie dla jakich technologii takich jak OAuth zostały opracowane. Więc bezpośrednie przyszłe badania w tym kierunku.
Powiedz mi więcej o tej "ręcznej stronie przekierowania klienta (może być ok, ponieważ i tak wykonujesz wywołanie AJAX)." – user1265146
Podoba mi się ten pomysł ... powiedz mi więcej o tej "ręcznej stronie przekierowania klienta (może być ok, ponieważ i tak wykonujesz wywołanie AJAX)." Musiałbym ustawić nagłówek auth i otworzyć go w nowym oknie lub karcie. – user1265146
@ user1265146 - "manual", tak jak otrzymujemy normalną odpowiedź 200 z twojego serwera, która zawiera coś takiego jak '{header: XXXX, location: url}' i tworzymy drugie żądanie AJAX do tej lokalizacji.Teraz, ponieważ prawdopodobnie chcesz publikować w innej domenie, możesz nie mieć możliwości złożenia tego wniosku (chyba że ta inna domena obsługuje CORS). –