일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- clean code
- Spring
- spring boot
- 스프링 부트
- JWT
- 비동기
- Refactoring
- oauth2
- gdg
- java
- 페이스북
- OAuth
- tomcat
- 페이징
- Security
- 스프링부트
- JPA
- g1
- assertj
- 클린코드
- 리팩토링
- 권한
- 시큐리티
- jvm
- RabbitMQ
- load balancing
- GC
- Producer
- apache
- 스프링
Archives
- Today
- Total
허원철의 개발 블로그
Spring Boot - Social (Facebook) 본문
저번 글 중에 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