Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]oauth2 sposób użycia
Forum PHP.pl > Forum > Przedszkole
szybki
Czy ktoś może mi łopatologicznie wyjasnić sposób implementacji http://bshaffer.github.io/oauth2-server-php-docs/cookbook/ w PHP?

Mam serwer 1, ten na którym sa loginy i hasła użytkowników, mam też serwer 2, serwis który ma kożystać z danych na serwerze 1 z oauth.

Tylko mam problem z implementacją tego, gdzie umieszczam skrypt tokenu, na serwerze 2? I w którym momencie wyświetlić formularz logowania?
Pyton_000
Tam jest to dobrze opisane.

W aplikacji robisz formularz logowania, wysyłasz do serwera, tam generuje się token i wraca jako response. zapisujesz sobie go i masz.
Potem przy wykonywaniu akcji weryfiikujesz poprawność tokenu
szybki
Czyli

1. aplikacja (strona www) ma w kodzie client_id oraz seret_key
2. wysyła to do serwera i robi przekierowanie do formuarza
3. serwer sprawdza dane wpisane w formularzu (zwykłe logowanie użytkownika) i jeśli sie zgadza odsyła access_token do aplikacji
4. aplikacja dzięki otrzymanemu tokenowi, robi drugie zapytanie do serwera
5. serwer jeśli uzna że AT jest ok, zwróci dane np imię, email do aplikacji

I to wszystko?
Pyton_000
Dane możesz od razu zapisać w JWT przy generowaniu tokenu. Ich poprawność możesz sobie zweryfikować podczas ich odczytywania.
szybki
Ok, tylko sam utknąłem w punkcie jaki opisałem biggrin.gif
Cytat
2. wysyła to do serwera i robi przekierowanie do formuarza


Jak to zrobić curlem? Nie da się jednocześnie wysłać danych POST, i zrobić przekierowanie na bezpieczny adres HTTPS (inny serwer)
Pyton_000
Puszczasz post curlem i odbierasz dane a potem na www robisz redirect jako zalogowany.

  1. // set post fields
  2. $post = [
  3. 'username' => 'user1',
  4. 'password' => 'passuser1',
  5. 'gender' => 1,
  6. ];
  7.  
  8. $ch = curl_init('http://www.example.com');
  9. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  10. curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
  11.  
  12. // execute!
  13. $response = curl_exec($ch);
  14.  
  15. // close the connection, release resources used
  16. curl_close($ch);
  17.  
  18. // do anything you want with your response
  19. var_dump($response);
szybki
Tylko, że logowanie ma nastąpić na serwerze 2, wiec tam nie ma sensu wysyłać danych login/hasło curlem. Całość ma działac jak "zaloguj sie przez facebook", klikam > przekierowanie > logowanie na fb > zwrot danych
Pyton_000
Aaaa..... dooobra.... pomyliło mi się z Auth0 bazującym na JWT sciana.gif

Sorka za zamieszanie.... Mea culpa... Chociaż w sumie zasada podobna ale...
szybki
Właśnie czyli jak to zrobić?
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.