Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SF][SF3] Autentykacja z tokenem
Forum PHP.pl > Forum > PHP > Frameworki
netvalue
Mam serwer API na którym robię autentykację przykłądowo
http://host/login w poście przesyłam login i hasło , jeśli jest poprawna otrzymuje 200 i wygenerowany token.
Serwer udostępnia różne metody które wymagają przesłanego w nagłówku tego tokena.


Teraz potrzebuje zrobić klienta API w symfony 3.4 , w którym będe logował się do tego serwera i teraz zastanawiam się jak po pobraniu tego tokena utworzyć
obiekt użytkownika który będzie posiadał tego tokena i przesyłał go w nagłówkach do metod które będę wywoływał z klienta API na serwer ?
PawelC
Osobna tabela np user_api_key gdzie trzymasz ID usera oraz klucz autoryzacyjny. W momencie zalogowania do tabeli rzuć ID user, czy tam username + klucz. Przy kolejnym request pobierz ID usera na podstawie klucza autoryzacji.
Kolejna sprawa to po zalogowaniu dostajesz obiekt usera do którego masz dostęp poprzez $this->getUser()

To powinno Ci wiele wyjaśnić https://symfony.com/doc/3.4/security/api_ke...entication.html
netvalue
generalnie korzystam z API wygenerowanego przez codegen Swagger. Tam już mam stworzonego UserApi oraz User model. Może jest jakaś opcja wykorzystania jakiegos bundla
PawelC
Tu już musisz sobie sam poradzić, bundle wszystkiego za Ciebie niestety nie zrobią wink.gif
netvalue
kurcze, nie wiem czy się rozumiemy

api serwera (zewnętrtznego) do którego kodu nie mam dostępu . wygląda mniej więcej tak:

  1. AUTENTYKACJA
  2. [POST] http:/host/user/login
  3. Request: parametry: email, hasło
  4. Respond: zwraca json token przy poprawnym zalogowaniu np. 4u29547915794359395534543
  5.  
  6. POBRANIE DANYCH ZALOGOWANEGO UZYTKOWNIKA
  7. [GET] http:/host/user/getPersonalData
  8. Request: header JsonToken: 4u29547915794359395534543
  9. Respond: zwraca obiekt json z danymi personalnymi uzytkowniak jezeli JsonToken jest prawidłowy



Teraz w symfony tworze formularz logowania ktory postem przesyla requesta do http:/host/user/login, otrzymuje
tokena i potrzebuje stworzyć obiekt użytkownika oraz do każdego przesyłanego requesta dawać w headerze ten token tak jak do http:/host/user/getPersonalData
lub innych metod które go będą wykonywać.

PawelC
1. Logujesz się, dostajesz token
2. Wysyłasz kolejny request z tokenem w nagłówku, dostajesz odpowiedź w formacie json zapewne.
3. Wyświetlasz w sf otrzymane dane w formacie json

I tyle biggrin.gif
netvalue
o to chodzi tak jak piszesz kolego smile.gif

generalnie teraz przerabiam materiał który wcześniej linkowałeś ( How to Authenticate Users with API Keys )
tylko tutaj nie kumam:

1. w przykładzie podanym w w/w manulu musze cały czas podawać token w parametrze GET... mi by bardziej odpowiadało aby po zalogowaniu i pobraniu tokena trzymać go może w cookies
2. nie bardzo wiem w którym miejscu mógłbym ustawić ten token do wszystkich przesyłanych odemnie requestów na serwer API
PawelC
To gdzie przekazujes token, zależy od API skąd go pobiera, jedne pobierają z GET, inne np z Header jak u mnie. W Twoim wypadku jak widać musisz przekazywać go w nagłówku.
netvalue
dzieki wielkie za pomoc smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.