목표: 구글 로그인을 구현한다.
2.oauth 동의화면을 들어가 USER TYPE(외부)을 등록.
애플리케이션 유형을 웹 애플리케이션으로 설정. 이름은 자유자재로.
여기서 comm/member/oauth_google_check는 토큰값을 받을 mapping하는 곳을 의미한다.
여기까지 기본 설정이 완료됐다면 이제 appkey를 spring상에 설정하면 된다.
appkey Property를
여기서 appkey.properties 파일을 볼 수 있다. 이 파일 내부에는 api에 대한 appkey값이 들어있다. 이렇게 한꺼번에 모아놓고 사용하기 위해 주요 사용하는데 이를 사용하기 위해서는 PropertyPlaceholderConfigurer 클래스가 필요하다.
<beans:bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<beans:property name="locations" value="classpath:spring/appkey.properties" />
</beans:bean>
이 값을 servlet-context에 집어넣으면 사용할 수 있다. appkey 내부에는
#google login key
google.client.id =
google.secret=
google.auth.url=https://oauth2.googleapis.com
google.login.url=https://accounts.google.com
google.redirect.url=http://localhost:8080/comm/member/oauth_google_check
이렇게 집어넣으면 되는데 client.id는 우리가 발급받았던 아이디
secret에는 발급받은 비밀번호를 입력하면 된다.
자 이렇게 기본 설정을 끝마치고 이제 스프링 내부 설정을 만지면 된다.
만들어야 할 목록
vo
GoogleLoginResponse.java
GoogleMember.java
GoogleOAuthRequest.java
이렇게 만들고 나서 로그인을 할 매핑영역에 다음과 같이 추가.
redirect를 받기 위해서 전달해야하는 값을 설정하기 위해 String reqUrl에 값을 세팅하고 구글 로그인 요청창을 연다.
다음에서는 계정을 세팅하고 redirect를 받을 토큰 창을 설정
우리가 위에서 값을 세팅했던 redirect URL을 의미.
토큰 값은 JSON형태로 가져오는데 우리는 여기서 objectMapper를 통해서 값을 읽어올 것이다. 가져온 값을 GoogleMember 클래스에 저장하고 로그인여부를 통해 값을 자유자재로 다루면 된다.
나같은 경우 로그인 시 이미 회원가입된 소셜 회원이 있다면 로그인이 되도록하고 계정이 없다면 바로 회원가입 시키고 로그인하도록 구현하였다.