Dla np. kiedy użytkownik ma login. Teraz możemy powiedzieć, że użytkownik chce utworzyć forum, Skąd będę wiedział, że użytkownik jest już zalogowany?
Pomyślcie o tym - musi być jakiś uścisk dłoni, który mówi interfejsowi API "Stwórz forum", że to bieżące żądanie pochodzi od uwierzytelnionego użytkownika. Ponieważ interfejsy API REST są zwykle bezpaństwowcami, stan musi być utrwalony gdzieś. Twój klient korzystający z interfejsów REST API jest odpowiedzialny za utrzymanie tego stanu. Zwykle jest w formie pewnego tokena, który jest przekazywany od czasu zalogowania użytkownika. Jeśli token jest dobry, twoja prośba jest dobra.
Sprawdź, jak usługa Amazon AWS uwierzytelnia się. To doskonały przykład "przekazywania pieniędzy" z jednego API do drugiego.
* Pomyślałem o dodaniu praktycznej odpowiedzi do poprzedniej odpowiedzi. Wypróbuj Apache Shiro (lub dowolną bibliotekę autoryzacji/autoryzacji). Podsumowując, spróbuj uniknąć niestandardowego kodowania.Kiedy już zintegrowany swoją ulubioną bibliotekę (używam Apache Shiro, btw) można następnie wykonaj następujące czynności:
- utworzyć login/wylogowania API jak:
/api/v1/login
i api/v1/logout
- W tych logowania i wylogowania API, wykonaj uwierzytelnianie z sklepu użytkownika
- efektem jest wyrazem (zwykle
JSESSIONID
), który jest wysyłany do klienta (web, mobile, cokolwiek)
- Od tego momentu, wszystkie kolejne połączenia wykonywane przez klienta będzie zawierać ten token
- Załóżmy, że następne połączenie zostanie wykonane do API o nazwie
/api/v1/findUser
- Pierwszą rzeczą ten kod API będzie zrobić, to sprawdzić tokena („jest użytkownik uwierzytelniony?”)
- Jeśli odpowiedź wraca jako NIE, wówczas klient otrzymuje stan HTTP 401 . Pozwól im sobie z tym poradzić.
- Jeśli odpowiedź brzmi TAK, a następnie przystąpić do zwrotu poszukiwane instrukcje
To wszystko. Mam nadzieję że to pomoże.
Prawdopodobnie powinieneś wyszukać "Uwierzytelnianie REST" tutaj. Zostało to poruszone w wielu innych kwestiach. –
W skrócie, pozwól klientowi wysłać nazwę użytkownika i hasło przy każdym żądaniu za pomocą protokołu HTTP Basic Auth (przez SSL!) Lub uwierzytelnij raz, aby klient miał uwierzytelnioną sesję, która wygaśnie po pewnym okresie bezczynności (lub jednak zdecydujesz się na nadpisuje "obsługę sesji w ramach sieci WWW". Sesja ta może być następnie przechowywana w pliku cookie lub może być parametrem przekazywanym przy każdym żądaniu (np. JSESSIONID w języku Java). – opyate
Zobacz także [Jak kontrolować, kto używa mojego widżetu internetowego] (http://stackoverflow.com/questions/12998701/how-to-control-who-uses-my-web-widget/). – Arjan