Mam następujący scenariusz. Mam witrynę Uruchomiony plik node.js, w którym użytkownicy mogą się logować, a następnie wykonywać zadania za pomocą różnych wywołań interfejsu API JavaScript. Kiedy się logują, przypisuję im plik cookie, który jest używany przy tworzeniu wszystkich żądań internetowych i w ten sposób mogę śledzić, ile zgłoszeń już wykonano.
Teraz chcę, aby inna strona B także była w staniezużywać API dostarczony przez stronę A. Mam pytanie, w jaki sposób użytkownicy na stronie B mogą uzyskać plik cookie, który pozwoli im wysyłać żądania do strony A, bez przechodzenia na stronę A i logowania się tam. Jeśli utworzę żądanie logowania w wielu domenach za pomocą konta domyślnego, nie będę mógł pobrać z niego plików cookie przypisanych w odpowiedzi.
Jeśli to możliwe, unikałbym używania czegoś takiego jak parametr SECRET_KEY w żądaniach pobierania z witryny B do A, ponieważ korzystam z modułu sesji węzła, który ładuje sesje na podstawie plików cookie.
Odpowiedzi:
1 dla odpowiedzi № 1Jedynym sposobem na zrobienie tego jest wysłanie strony Acofnij ciasteczka wieloznaczne, które zawierają zarówno domenę A, jak i domenę B. Pamiętaj, że możesz otworzyć dużą lukę w zabezpieczeniach, jeśli Twoja domena A i domena B są domenami drugiego poziomu.
Lub spraw, aby kod w domenie B korzystał z przeglądarki klienta jakokanał do domeny A. Możesz przesłać kod JavaScript z domeny B do przeglądarki użytkownika, który będzie używał interfejsu API w domenie A i przepuścić wyniki do domeny B. Ale nawet w tym przypadku musisz zająć się nagłówkami CORS na obu boki. W przeciwnym razie przeglądarka nie będzie ufać kodowi z domeny B, aby wysłać żądania do domeny A.