Temat już kiedyś poruszałem, tym razem problem jest bardziej złożony. Mam aplikację internetową z logowaniem usera. Bardzo dobrze zabezpieczoną od strony backendu, uprawnienia usera siedzą w sesji. Dopóki backend i frontend były częścią tego samego serwisu (ta sama domena), sprawa była prosta - serwer zwracał dane tylko na żądania z tej samej sesji. Napisałem jednak usługę danych, która miała być wspólna dla kilku serwisów. Zwraca JSON lub XML, w zależności od żądania klienta. Problem z tym, że nie chcę zwracać danych każdemu kto zapyta, a tylko konkretnym aplikacjom i tylko wtedy, kiedy user jest zalogowany.
Obecnie mam to rozwiązane tak - PHP wysyła zapytanie z uwierzytelnieniem do serwera usługi danych, następnie zwraca pobrane dane AJAX-owi wewnątrz domeny aplikacji klienckiej. Działa i jest bezpieczne, tylko wydaje mi się to trochę na około. Chciałbym pominąć jakoś ten krok pobierania danych przez PHP aplikacji klienckiej, zamiast tego pobrać dane bezpośrednio JS z serwera usługi danych. Tylko problem uwierzytelnienia! Nie mogę hasła umieścić w kodzie przecież. To musi być proste... Jednym z pomysłów jest, żeby skrypt pobierał dane do uwierzytelnienia z serwera klienckiego (w sesji) następnie wysyłał tak uzyskane uwierzytelnienie do usługi danych. Tak czy inaczej mam 2 zapytania. Chociaż w sumie to pierwsze można wywołać raz, dane mogą siedzieć w pamięci do czasu przeładowania strony (co w AJAX-ie powinno być rzadkością).
Dobra, ja tu kombinuję jak koń pod górę, a może jest jakiś standardowy sposób uwierzytelniania dla zapytań do innej domeny? W szczególności interesują mnie rozwiązania z jQuery.