SlideShare a Scribd company logo
1 of 30
Download to read offline
www.proskar.pl
Logowanie przez Facebook
i Gmail
Warsztaty PROSKAR
www.proskar.pl
Plan prezentacji
• Czym jest logowanie?
• Logowanie przez Facebook
• Logowanie przez Gmail
www.proskar.pl 2 / 30
Czym jest logowanie?
• Logowanie jest procesem uwierzytelniania
i autoryzacji użytkownika.
• Zazwyczaj polega na podaniu pewnego
identyfikatora użytkownika (tak zwanego
loginu) oraz hasła.
• Stanowi ono swoisty klucz dostępu do
chronionych zasobów systemu.
www.proskar.pl 3 / 30
Logowanie przez Facebook i Gmail
• Wraz z rozwojem Internetu zwiększyła się
liczba serwisów wymagających logowania
przez co użytkownik musi zapamiętać coraz
więcej loginów i haseł.
• Coraz częstszym rozwiązaniem jest
umożliwienie użytkownikowi autoryzacji za
pomocą popularnych serwisów.
www.proskar.pl 4 / 30
Czas na praktykę…
www.proskar.pl 5 / 30
Import Biblioteki do projektu Maven
w NetBeans 8.0
• W celu zaimportowania biblioteki do projektu Maven
w NetBeans IDE należy kliknąć prawym przyciskiem
myszy na węźle Dependencies w drzewie projektu,
a następnie wybrać opcję Add Dependency...
www.proskar.pl 6 / 30
Import Biblioteki do projektu Maven
w NetBeans 8.0
• Kolejnym krokiem jest wpisanie w oknie Add
Dependency następujących danych:
www.proskar.pl 7 / 30
Import Biblioteki do projektu Maven
w NetBeans 8.0
• Po wykonaniu powyższych czynności po rozwinięciu
Dependencies wśród pozostałych zależności naszego projektu
powinna znajdować się zależność authorization-library-
1.0.jar oznaczona ikoną wykrzyknika. Klikamy na zależność
PPM i z menu rozwijalnego wybieramy Manually Install
Artifact:
www.proskar.pl 8 / 30
Import Biblioteki do projektu Maven
w NetBeans 8.0
• W wyświetlonym oknie wybieramy Browse...
i wskazujemy lokalizację pliku jar biblioteki
a następnie klikamy Install Locally
www.proskar.pl 9 / 30
Import Biblioteki do projektu Maven
w NetBeans 8.0
• Po poprawnym wykonaniu importu powinien
zniknąć wykrzyknik znajdujący sie przy
zależności biblioteki authorization-library-
1.0.jar w Dependencies
www.proskar.pl 10 / 30
Logowanie przez Facebook
www.proskar.pl 11 / 30
Konfiguracja
• W celu zapewnienia możliwości logowania
przez Facebook niezbędne jest posiadanie
konta na tym serwisie.
• Kolejnym krokiem jest utworzenie aplikacji,
poprzez którą będzie możliwe logowanie.
• Jest to możliwe za pomocą panelu, który jest
dostępny pod adresem:
https://developers.facebook.com/
www.proskar.pl 12 / 30
Konfiguracja – niezbędne dane
Dane wymagane przy
konfiguracji logowania to:
1. Identyfikator aplikacji
2. App Secret (wyświetla się
po wciśnięciu przycisku
"Wyświetl")
3. Site URL - adres strony na
którą następuje
przekierowanie po
pomyślnym zalogowaniu
www.proskar.pl 13 / 30
Konfiguracja projektu
• W celu dostarczenia konfiguracji projektu niezbędny
jest plik facebook-auth-config.properties, który
powinien być umieszczony w katalogu
/src/main/resources.
• Zawartość tego pliku powinna wyglądać następująco:
www.proskar.pl 14 / 30
Implementacja logiki logowania
z użyciem JSF 2.2
• Aby podłączyć do aplikacji korzystającej
z frameworka JSF 2.2 możliwość logowania przez
Facebook należy zaimplementować klasę
ManagedBean-a, który dostarcza adres logowania
przez Facebook.
• Adres ten można uzyskać z obiektu klasy
FacebookAuthenticator. Utworzenie instancji tej
klasy wymaga przekazania w konstruktorze
obiektów klas implementujących interfejsy:
UrlDataProvider, UserDataProvider oraz
StateTokenSessionManager.
www.proskar.pl 15 / 30
Implementacja logiki logowania
z użyciem JSF 2.2
• Przyjrzyjmy się bliżej wymienionym wcześniej
interfejsom.
– UrlDataProvider dostarcza metody pobierające
z paska adresu przeglądarki wartości parametrów
code oraz state, które ustawiane są po przekierowaniu
następującym po pomyślnym zalogowaniu.
– UserDataProvider dostarcza metody, do której
przekazywany jest obiekt klasy User zawierający
podstawowe dane zalogowanego użytkownika.
– StateTokenSessionManager dostarcza metody, które
realizują zapis i odczyt z sesji wartości tokena
o określonym kluczu.
www.proskar.pl 16 / 30
Uwaga!
Klasa ManagedBean-a musi zawierać metodę
analizującą zawartość paska przeglądarki
i w przypadku odnalezienia w nim wartości
'facebook;' wywołującą metodę processLogin()
obiektu klasy FacebookAuthenticator.
www.proskar.pl 17 / 30
Managed Bean – przykład
implementacji
www.proskar.pl 18 / 30
Managed Bean – przykład
implementacji
www.proskar.pl 19 / 30
Managed Bean – przykład
implementacji
www.proskar.pl 20 / 30
Managed Bean – przykład
implementacji
www.proskar.pl 21 / 30
Logowanie przez Gmail
www.proskar.pl 22 / 30
Konfiguracja
• Konfiguracja przechowywana jest w pliku
google-auth-config.properties, który musi być
umieszczony w katalogu /src/main/resources.
• Dane potrzebne do konfiguracji logowania
otrzymujemy, gdy mamy aktywowane konto
Google. Adres pod którym można zarządzać
danymi do logowania:
https://code.google.com/apis/console/.
www.proskar.pl 23 / 30
Konfiguracja – panel administracyjny
www.proskar.pl 24 / 30
Przykładowa zawartość pliku
konfiguracyjnego
www.proskar.pl 25 / 30
Implementacja logiki logowania
z użyciem JSF 2.2
• Implementacja logiki logowania przez Gmail
jest analogiczna do implementacji logowania
przez Facebook.
www.proskar.pl 26 / 30
Przykładowa implementacja
www.proskar.pl 27 / 30
Przykładowa implementacja
www.proskar.pl 28 / 30
Przykładowa implementacja
www.proskar.pl 29 / 30
Dziękuję za uwagę
www.proskar.pl 30 / 30

More Related Content

Similar to Logowanie przez facebook i gmail w java

ASP.NET 2.0. Gotowe rozwiązania
ASP.NET 2.0. Gotowe rozwiązaniaASP.NET 2.0. Gotowe rozwiązania
ASP.NET 2.0. Gotowe rozwiązaniaWydawnictwo Helion
 
Zarzadzanie tozsamoscia za pomoca fim
Zarzadzanie tozsamoscia za pomoca fimZarzadzanie tozsamoscia za pomoca fim
Zarzadzanie tozsamoscia za pomoca fimDC Computer Plus
 
Citrix NetScaler Gateway i Azure MFA
Citrix NetScaler Gateway i Azure MFACitrix NetScaler Gateway i Azure MFA
Citrix NetScaler Gateway i Azure MFAPawel Serwan
 
Błędy userów, niedoróbki koderów
Błędy userów, niedoróbki koderówBłędy userów, niedoróbki koderów
Błędy userów, niedoróbki koderówArkadiusz Stęplowski
 
Java authentication and authorization service
Java authentication and authorization serviceJava authentication and authorization service
Java authentication and authorization servicePROSKAR
 
Selenium
SeleniumSelenium
SeleniumPROSKAR
 
Microsoft Azure - Mobility & Security - wybrane usługi bezpieczeństwa
Microsoft Azure - Mobility & Security - wybrane usługi bezpieczeństwaMicrosoft Azure - Mobility & Security - wybrane usługi bezpieczeństwa
Microsoft Azure - Mobility & Security - wybrane usługi bezpieczeństwaMaciej Sobianek
 
PHP, MySQL i Apache dla każdego. Wydanie II
PHP, MySQL i Apache dla każdego. Wydanie IIPHP, MySQL i Apache dla każdego. Wydanie II
PHP, MySQL i Apache dla każdego. Wydanie IIWydawnictwo Helion
 
Standard tworzenia aplikacji JSF
Standard tworzenia aplikacji JSFStandard tworzenia aplikacji JSF
Standard tworzenia aplikacji JSFPROSKAR
 
Exam: 70-511 Enhancing Usability - Windows Application
Exam: 70-511 Enhancing Usability - Windows ApplicationExam: 70-511 Enhancing Usability - Windows Application
Exam: 70-511 Enhancing Usability - Windows ApplicationMaciej Zbrzezny
 
Macromedia Dreamweaver MX 2004. Oficjalny podręcznik
Macromedia Dreamweaver MX 2004. Oficjalny podręcznikMacromedia Dreamweaver MX 2004. Oficjalny podręcznik
Macromedia Dreamweaver MX 2004. Oficjalny podręcznikWydawnictwo Helion
 

Similar to Logowanie przez facebook i gmail w java (20)

ASP.NET 2.0. Gotowe rozwiązania
ASP.NET 2.0. Gotowe rozwiązaniaASP.NET 2.0. Gotowe rozwiązania
ASP.NET 2.0. Gotowe rozwiązania
 
Zarzadzanie tozsamoscia za pomoca fim
Zarzadzanie tozsamoscia za pomoca fimZarzadzanie tozsamoscia za pomoca fim
Zarzadzanie tozsamoscia za pomoca fim
 
Citrix NetScaler Gateway i Azure MFA
Citrix NetScaler Gateway i Azure MFACitrix NetScaler Gateway i Azure MFA
Citrix NetScaler Gateway i Azure MFA
 
M4j3
M4j3M4j3
M4j3
 
M4j3
M4j3M4j3
M4j3
 
Błędy userów, niedoróbki koderów
Błędy userów, niedoróbki koderówBłędy userów, niedoróbki koderów
Błędy userów, niedoróbki koderów
 
M4j1
M4j1M4j1
M4j1
 
M4j1
M4j1M4j1
M4j1
 
Java authentication and authorization service
Java authentication and authorization serviceJava authentication and authorization service
Java authentication and authorization service
 
M3j3
M3j3M3j3
M3j3
 
M3j3
M3j3M3j3
M3j3
 
Wydajny frontend 2023
Wydajny frontend 2023Wydajny frontend 2023
Wydajny frontend 2023
 
Selenium
SeleniumSelenium
Selenium
 
Microsoft Azure - Mobility & Security - wybrane usługi bezpieczeństwa
Microsoft Azure - Mobility & Security - wybrane usługi bezpieczeństwaMicrosoft Azure - Mobility & Security - wybrane usługi bezpieczeństwa
Microsoft Azure - Mobility & Security - wybrane usługi bezpieczeństwa
 
PHP, MySQL i Apache dla każdego. Wydanie II
PHP, MySQL i Apache dla każdego. Wydanie IIPHP, MySQL i Apache dla każdego. Wydanie II
PHP, MySQL i Apache dla każdego. Wydanie II
 
Standard tworzenia aplikacji JSF
Standard tworzenia aplikacji JSFStandard tworzenia aplikacji JSF
Standard tworzenia aplikacji JSF
 
Exam: 70-511 Enhancing Usability - Windows Application
Exam: 70-511 Enhancing Usability - Windows ApplicationExam: 70-511 Enhancing Usability - Windows Application
Exam: 70-511 Enhancing Usability - Windows Application
 
M3j2
M3j2M3j2
M3j2
 
M3j2
M3j2M3j2
M3j2
 
Macromedia Dreamweaver MX 2004. Oficjalny podręcznik
Macromedia Dreamweaver MX 2004. Oficjalny podręcznikMacromedia Dreamweaver MX 2004. Oficjalny podręcznik
Macromedia Dreamweaver MX 2004. Oficjalny podręcznik
 

More from PROSKAR

Wysyłanie wiadomości email z użyciem serwera wildfly
Wysyłanie wiadomości email z użyciem serwera wildflyWysyłanie wiadomości email z użyciem serwera wildfly
Wysyłanie wiadomości email z użyciem serwera wildflyPROSKAR
 
Walidacja po stronie klienta za pomocą jquery oraz angular js
Walidacja po stronie klienta za pomocą jquery oraz angular jsWalidacja po stronie klienta za pomocą jquery oraz angular js
Walidacja po stronie klienta za pomocą jquery oraz angular jsPROSKAR
 
Tworzenie klienta web service za pomoca cxf
Tworzenie klienta web service za pomoca cxfTworzenie klienta web service za pomoca cxf
Tworzenie klienta web service za pomoca cxfPROSKAR
 
Testy integracyjne
Testy integracyjneTesty integracyjne
Testy integracyjnePROSKAR
 
Środowisko android studio - podstawy
Środowisko android studio - podstawyŚrodowisko android studio - podstawy
Środowisko android studio - podstawyPROSKAR
 
JMS java messaging service
JMS java messaging serviceJMS java messaging service
JMS java messaging servicePROSKAR
 
Flow scope w JSF
Flow scope w JSFFlow scope w JSF
Flow scope w JSFPROSKAR
 
Blokada wykonywania wielu akcji z jednego widoku
Blokada wykonywania wielu akcji z jednego widokuBlokada wykonywania wielu akcji z jednego widoku
Blokada wykonywania wielu akcji z jednego widokuPROSKAR
 

More from PROSKAR (8)

Wysyłanie wiadomości email z użyciem serwera wildfly
Wysyłanie wiadomości email z użyciem serwera wildflyWysyłanie wiadomości email z użyciem serwera wildfly
Wysyłanie wiadomości email z użyciem serwera wildfly
 
Walidacja po stronie klienta za pomocą jquery oraz angular js
Walidacja po stronie klienta za pomocą jquery oraz angular jsWalidacja po stronie klienta za pomocą jquery oraz angular js
Walidacja po stronie klienta za pomocą jquery oraz angular js
 
Tworzenie klienta web service za pomoca cxf
Tworzenie klienta web service za pomoca cxfTworzenie klienta web service za pomoca cxf
Tworzenie klienta web service za pomoca cxf
 
Testy integracyjne
Testy integracyjneTesty integracyjne
Testy integracyjne
 
Środowisko android studio - podstawy
Środowisko android studio - podstawyŚrodowisko android studio - podstawy
Środowisko android studio - podstawy
 
JMS java messaging service
JMS java messaging serviceJMS java messaging service
JMS java messaging service
 
Flow scope w JSF
Flow scope w JSFFlow scope w JSF
Flow scope w JSF
 
Blokada wykonywania wielu akcji z jednego widoku
Blokada wykonywania wielu akcji z jednego widokuBlokada wykonywania wielu akcji z jednego widoku
Blokada wykonywania wielu akcji z jednego widoku
 

Logowanie przez facebook i gmail w java

  • 1. www.proskar.pl Logowanie przez Facebook i Gmail Warsztaty PROSKAR www.proskar.pl
  • 2. Plan prezentacji • Czym jest logowanie? • Logowanie przez Facebook • Logowanie przez Gmail www.proskar.pl 2 / 30
  • 3. Czym jest logowanie? • Logowanie jest procesem uwierzytelniania i autoryzacji użytkownika. • Zazwyczaj polega na podaniu pewnego identyfikatora użytkownika (tak zwanego loginu) oraz hasła. • Stanowi ono swoisty klucz dostępu do chronionych zasobów systemu. www.proskar.pl 3 / 30
  • 4. Logowanie przez Facebook i Gmail • Wraz z rozwojem Internetu zwiększyła się liczba serwisów wymagających logowania przez co użytkownik musi zapamiętać coraz więcej loginów i haseł. • Coraz częstszym rozwiązaniem jest umożliwienie użytkownikowi autoryzacji za pomocą popularnych serwisów. www.proskar.pl 4 / 30
  • 6. Import Biblioteki do projektu Maven w NetBeans 8.0 • W celu zaimportowania biblioteki do projektu Maven w NetBeans IDE należy kliknąć prawym przyciskiem myszy na węźle Dependencies w drzewie projektu, a następnie wybrać opcję Add Dependency... www.proskar.pl 6 / 30
  • 7. Import Biblioteki do projektu Maven w NetBeans 8.0 • Kolejnym krokiem jest wpisanie w oknie Add Dependency następujących danych: www.proskar.pl 7 / 30
  • 8. Import Biblioteki do projektu Maven w NetBeans 8.0 • Po wykonaniu powyższych czynności po rozwinięciu Dependencies wśród pozostałych zależności naszego projektu powinna znajdować się zależność authorization-library- 1.0.jar oznaczona ikoną wykrzyknika. Klikamy na zależność PPM i z menu rozwijalnego wybieramy Manually Install Artifact: www.proskar.pl 8 / 30
  • 9. Import Biblioteki do projektu Maven w NetBeans 8.0 • W wyświetlonym oknie wybieramy Browse... i wskazujemy lokalizację pliku jar biblioteki a następnie klikamy Install Locally www.proskar.pl 9 / 30
  • 10. Import Biblioteki do projektu Maven w NetBeans 8.0 • Po poprawnym wykonaniu importu powinien zniknąć wykrzyknik znajdujący sie przy zależności biblioteki authorization-library- 1.0.jar w Dependencies www.proskar.pl 10 / 30
  • 12. Konfiguracja • W celu zapewnienia możliwości logowania przez Facebook niezbędne jest posiadanie konta na tym serwisie. • Kolejnym krokiem jest utworzenie aplikacji, poprzez którą będzie możliwe logowanie. • Jest to możliwe za pomocą panelu, który jest dostępny pod adresem: https://developers.facebook.com/ www.proskar.pl 12 / 30
  • 13. Konfiguracja – niezbędne dane Dane wymagane przy konfiguracji logowania to: 1. Identyfikator aplikacji 2. App Secret (wyświetla się po wciśnięciu przycisku "Wyświetl") 3. Site URL - adres strony na którą następuje przekierowanie po pomyślnym zalogowaniu www.proskar.pl 13 / 30
  • 14. Konfiguracja projektu • W celu dostarczenia konfiguracji projektu niezbędny jest plik facebook-auth-config.properties, który powinien być umieszczony w katalogu /src/main/resources. • Zawartość tego pliku powinna wyglądać następująco: www.proskar.pl 14 / 30
  • 15. Implementacja logiki logowania z użyciem JSF 2.2 • Aby podłączyć do aplikacji korzystającej z frameworka JSF 2.2 możliwość logowania przez Facebook należy zaimplementować klasę ManagedBean-a, który dostarcza adres logowania przez Facebook. • Adres ten można uzyskać z obiektu klasy FacebookAuthenticator. Utworzenie instancji tej klasy wymaga przekazania w konstruktorze obiektów klas implementujących interfejsy: UrlDataProvider, UserDataProvider oraz StateTokenSessionManager. www.proskar.pl 15 / 30
  • 16. Implementacja logiki logowania z użyciem JSF 2.2 • Przyjrzyjmy się bliżej wymienionym wcześniej interfejsom. – UrlDataProvider dostarcza metody pobierające z paska adresu przeglądarki wartości parametrów code oraz state, które ustawiane są po przekierowaniu następującym po pomyślnym zalogowaniu. – UserDataProvider dostarcza metody, do której przekazywany jest obiekt klasy User zawierający podstawowe dane zalogowanego użytkownika. – StateTokenSessionManager dostarcza metody, które realizują zapis i odczyt z sesji wartości tokena o określonym kluczu. www.proskar.pl 16 / 30
  • 17. Uwaga! Klasa ManagedBean-a musi zawierać metodę analizującą zawartość paska przeglądarki i w przypadku odnalezienia w nim wartości 'facebook;' wywołującą metodę processLogin() obiektu klasy FacebookAuthenticator. www.proskar.pl 17 / 30
  • 18. Managed Bean – przykład implementacji www.proskar.pl 18 / 30
  • 19. Managed Bean – przykład implementacji www.proskar.pl 19 / 30
  • 20. Managed Bean – przykład implementacji www.proskar.pl 20 / 30
  • 21. Managed Bean – przykład implementacji www.proskar.pl 21 / 30
  • 23. Konfiguracja • Konfiguracja przechowywana jest w pliku google-auth-config.properties, który musi być umieszczony w katalogu /src/main/resources. • Dane potrzebne do konfiguracji logowania otrzymujemy, gdy mamy aktywowane konto Google. Adres pod którym można zarządzać danymi do logowania: https://code.google.com/apis/console/. www.proskar.pl 23 / 30
  • 24. Konfiguracja – panel administracyjny www.proskar.pl 24 / 30
  • 26. Implementacja logiki logowania z użyciem JSF 2.2 • Implementacja logiki logowania przez Gmail jest analogiczna do implementacji logowania przez Facebook. www.proskar.pl 26 / 30