Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]oauth2 sposób użycia
szybki
post
Post #1





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 18.06.2014

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
szybki
post
Post #3





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 18.06.2014

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Dane możesz od razu zapisać w JWT przy generowaniu tokenu. Ich poprawność możesz sobie zweryfikować podczas ich odczytywania.
Go to the top of the page
+Quote Post
szybki
post
Post #5





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 18.06.2014

Ostrzeżenie: (0%)
-----


Ok, tylko sam utknąłem w punkcie jaki opisałem (IMG:style_emoticons/default/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)
Go to the top of the page
+Quote Post
Pyton_000
post
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


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);
Go to the top of the page
+Quote Post
szybki
post
Post #7





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 18.06.2014

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Pyton_000
post
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Aaaa..... dooobra.... pomyliło mi się z Auth0 bazującym na JWT (IMG:style_emoticons/default/sciana.gif)

Sorka za zamieszanie.... Mea culpa... Chociaż w sumie zasada podobna ale...
Go to the top of the page
+Quote Post
szybki
post
Post #9





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 18.06.2014

Ostrzeżenie: (0%)
-----


Właśnie czyli jak to zrobić?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 16:10