Opracowałem interfejs API REST dla mojej aplikacji Symfony2. Ten api będzie używany przez aplikację mobilną. Znaczna część funkcjonalności odbywa się w kontekście aktualnie uwierzytelnionego użytkownika, tj:Uwierzytelnianie dla aplikacji Symfony2 api (do korzystania z aplikacji mobilnych)
$this->container->get('security.context')->getToken()->getUser()
Mam nadzieję, że aplikacja mobilna będzie w stanie odpowiedzieć na działanie logowania podobnie jak tradycyjnej formie internetowej. Jeśli poświadczenia się sprawdzą, Symfony2 robi to i ustawia plik cookie (czy to działa nawet w kontekście aplikacji mobilnej uzyskującej dostęp do interfejsu API?). Później żądania api z tego telefonu komórkowego (miejmy nadzieję) będą działać z rodzimym kontenerem usługi symfony2 security.context.
Czy to działa? Muszę wymyślić ten proces autoryzacji, zanim przejdę do interfejsu API aplikacji mobilnych. Jeśli to możliwe, oczywiście chciałbym móc korzystać z natywnej usługi security.context zamiast budować nowy system autoryzacji dla api, który używa xAuth lub czegoś podobnego.
Dzięki
Hmm ciekawy. Nie jestem pewien, czy podążam za wszystkim tutaj. Czy mógłbyś przejść przez pełny przykładowy przypadek? tj. użytkownik foo podaje swoją nazwę użytkownika/hasło do aplikacji mobilnej. Aplikacja następnie zawiera tę nazwę użytkownika i hasło przy każdym żądaniu do interfejsu API? W zwykłym tekście? Czy to bezpieczne? Przepraszam, jeśli coś tu nie rozumiem! – Marc
Jak powiedział dondlero, musisz wyłączyć pliki cookie, dlatego dodam parametr bezpaństwowy do true. Personalny Nie lubię uwierzytelniania digest, ponieważ jest to bardzo trudne do wdrożenia. Podstawowa metoda Http jest łatwa i działa dobrze. nazwa użytkownika i hasło są widoczne w każdym żądaniu. Musisz użyć certyfikatu SSL. – julesbou
Dziwne, nadal otrzymuję nagłówki 'Set-Cookie' nawet po ustawieniu' stateless: true'. Jakiś pomysł, dlaczego tak się stało? –