CodeCouple.pl
  • Agnieszka
  • Krzysztof
  • Kontakt

#14 Spring Boot – logowanie przez media/portale społecznościowe

Agnieszka Chruściel Agnieszka Chruściel 21 kwietnia 201721 kwietnia 2017

springBootArt

Media społecznościowe zawładnęły XXI wiekiem. Ciężko wyobrazić nam sobie aplikację, w której nie możemy zalogować się za pomocą Facebook’a lub Twitter’a. Dlatego właśnie przygotowałam krótki wpis, dzięki któremu dowiecie się jak szybko i łatwo można zaimplementować takie logowanie w kodzie swojej aplikacji wykorzystując Spring Boot’owe biblioteki.

Główna logika odbywa się w klasie ConnectController, która pod endpointem /connect/{providerID} wykonuje flow związane z wartością providerID. Providerem jest nazwa usługi np. twitter lub facebook. Następnie na podstawie nazwy usługi wykorzystywane jest odpowiednie factory, które tworzy połączenie. Połączenia przechowywane są w ConnectionRepository.

spring_social_graf

 

Przejdźmy teraz do implementacji. Należy dodać zależności w naszym pom.xml:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-social-twitter</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-social-facebook</artifactId>
</dependency>

W pliku application.properties musimy dodać App ID oraz App Secret:

# SPRING SOCIAL FACEBOOK (FacebookAutoConfiguration)
spring.social.facebook.app-id= # your application's Facebook App ID
spring.social.facebook.app-secret= # your application's Facebook App Secret

# SPRING SOCIAL TWITTER (TwitterAutoConfiguration)
spring.social.twitter.app-id= # your application's Twitter App ID
spring.social.twitter.app-secret= # your application's Twitter App Secret

Aby odczytać te wartości w przypadku Twitter’a musimy mieć zarejestrowane konto na stronie Twitter Application Management. Kody znajdują się w zakładce Keys and Access Tokens. W przypadku Facebook’a musimy posiadać konto na Facebook Developers. Dane dostępne są w zakładce Ustawienia->Podstawowe.

Jeśli chcemy wykorzystać mało spektakularne wbudowane widoki musimy dodać jeszcze jedną linię.

spring.social.auto_connection_views=true

Dzięki temu nie musimy pisać ani jednej linii kodu i mamy gotowe logowanie. Wchodzą teraz pod adres /connect/twitter zobaczymy taki widok:

spring_social_view1

Łączymy się z Twitterem i zostajemy poproszeni o zalogowanie się na swoje konto:

spring_social_view2

A to widok po zalogowaniu:

spring_social_view3

Analogiczne widoki otrzymamy dla Facebook’a.

Widzicie jakie to proste? Mamy ustawione tak naprawdę tylko propertiesy, a całość załatwia za nas Spring Social. Widoki te oczywiście możemy dostosować do własnych potrzeb. Należy przede wszystkim usunąć wpis o domyślnych widokach z properties’ów. Potem stworzyć swoje widoki w plikach {providerID}Connect i {providerID}Connected (w naszym przypadku twitterConnect i twitterConnected) i umieścić je w folderze connect.

Należy zauważyć, że Spring Social to nie tylko Facebook czy Twitter. Możemy wykorzystać go również do połączeń z wieloma innymi usługami:

Jednym z ciekawszych projektów jest Ecobee, czyli system do zarządzania termostatami. Patrząc na spis dostępnym usług widzimy, że nie wszystkie dotyczą mediów społecznościowych, dlatego nawet sam kierownik projektu Gary Russell, jest zdania, że określenie Social nie jest do końca poprawne. Może lepsze byłoby Connect!

 

 

Java, Spring Boot java, login, signin, social media, spring, spring boot. permalink.

Nawigacja po wpisie

Blue-Green-Deployment
Niekompletny GitFlow?
Szukaj:

Newsletter

Thank you!
Wzorce projektowe
Testing
Streams
JSF
Spring Boot
Books
JVM
GIT
Clean Code
DB
Apache Solr
Java
Agile
Docker
Konferencje
Gradle
Python

Będziemy tam!

  • GeeCON
  • Quality Excities
  • Confitura
  • 4 Developers - Łódź
  • SpreadIT

Tagi

4developers Actuator apache solr book books bytecode class loader Clean Code codeeurope concurrent confitura db design pattern docker flyweight GC geecon GIT hystrix IDE Intellij Idea java java 9 jdd jvm kata konferencja microservices PEP8 python pyłek quality excites rest solr spring spring boot spring boot 2 spring cloud stream streams synchronizer test testing thread wzorce projektowe

Partnerzy

Partnerzy
dazzling Motyw Colorlib Działa na WordPress