허원철의 개발 블로그

Spring Boot - Social (Facebook) 본문

web

Spring Boot - Social (Facebook)

허원철 2016. 12. 4. 21:39


저번 글 중에 OAuth2 에 대한 글이 있습니다. 이번에는 진짜로 소셜 로그인을 해보기 위한 글 입니다.

1. Gradle 설정
2. facebook developer 인증
3. properties 설정
4. Controller 설정
5. html 작성

6. 결과




1. Gradle 설정

- 본 내용은 가이드를 참고 하였습니다...

dependencies {
	compile('org.springframework.boot:spring-boot-starter-social-facebook')
	compile('org.springframework.boot:spring-boot-starter-thymeleaf')
	testCompile('org.springframework.boot:spring-boot-starter-test')
}


2. facebook developer 인증
  - facebook에서 로그인 기능을 그냥 줄리 없습니다...
  - 페이스북 개발자센터에서 인증을 해줍니다.


3. properties 설정
- 그렇다고 그냥 매칭되는게 아닙니다..? ID 와 시크릿 코드를 프로퍼티에 등록해줍니다.
spring.social.facebook.appId=802051679897614
spring.social.facebook.appSecret=1*******************************


4. Controller 설정

- 먼저 Controller를 설정하기 전에 어떻게 소셜 로그인을 자유롭게 붙일 수 있는지 확인해보겠습니다.
- 실행 시에, 콘솔 창을 확인해보면, 맵핑하지않은 것들이 콘솔에서 보입니다.


- 이는 spring-social-web-xxxx.jar 에 내장된 ConnectController에 정의된 것입니다.
- 예를 들어,
 connect/facebook 으로 접근을 하면 소셜로그인이 안된 경우
 facebookConnect.html 로 접근하게 되고,
 로그인이 된 경우에는 facebookConnected.html 로 접근되는 식입니다.



- 이제 컨트롤러를 만들어 보겠습니다.
- root('/') 에 접근 시에, 로그인한 적이 없다면 connect/facebook 로 리다이렉트 됩니다. facebookConnect.html 로 가겠죠...?
- 반대로, 로그인 정보가 있다면, facebook API 를 보면 User 클래스에 정보가 담아질 것 입니다. 하지만!! spring-boot-1.4.1 ,spring-social-facebook-2.0.3 기준으로 했을 때, bio 가 없다? 라는 식에 오류가 발생합니다. 그래서 User를 bio를 뺀 형태로 따로 User 클래스를 만들어서 사용했습니다.


5. Html 작업
- 현재 플로우 라면,
 ① localhost:8080 접근
 ② localhost:8080/connect/facebook 로 리다이렉트  (facebookConnect.html)
 ③ localhost:8080/connect/facebook(POST) 접근
 ④ 페이스북 로그인
 ⑤ localhost:8080/connect/facebook 로 리다이렉트  (facebookConnected.html)
 ⑥ localhost:8080/  -> (name 확인)

[facebookConnect.html]



[facebookConnected.html]



[main.html]



6. 결과
- name 값에 페이스북에 내 이름을 볼 수 있습니다. (참고로 Won Chul Heo 인데..)



'web' 카테고리의 다른 글

Spring Boot - AOP  (424) 2016.12.04
Spring Boot - Interceptor  (410) 2016.12.04
Spring Boot - WebSocket  (396) 2016.12.04
lonic Framework - Angular  (421) 2016.12.04
Spring Boot - Rest  (414) 2016.12.04
Comments