알쓸전컴(알아두면 쓸모있는 전자 컴퓨터)
google oauth2 사용하기 본문
google oauth2 사용하기
구글 공식 문서 기준으로 작성 합니다.
먼저 oauth2 를 사용하기 위해서는
아래와 같이 OAuth 클라이언트 ID 를 만들어야 합니다.
아래 링크 문서 기준으로 사용법을 알아 보겠습니다.
https://developers.google.com/identity/protocols/OAuth2WebServer (2019.03.22 일짜)
먼저 아래
라이브러리를 지원 한다고 나와 있습니다.
하지만 저는 HTTP/REST 를 사용하겠습니다.
예제로는
위와 같이 4개의 예제가 사용 되지만
HTTP/REST 을 서버 쪽은 JAVA로 해서 이용 하겠습니다.
예제는 위와 같이 나옵니다.
그래서
저는
https://accounts.google.com/o/oauth2/v2/auth?scope=https://www.googleapis.com/auth/analytics.readonly&
access_type=offline&
include_granted_scopes=true&state=state_parameter_passthrough_value&
redirect_uri=http://localhost:8181/thkomeetB/account/googlesigncallback&response_type=code&client_id=711155811271-2f5eetje4gtic3lv2d6tlvmt3ne8fmm2.apps.googleusercontent.com
위와 같이 적용 하고
여기서 잠깐
access_type=offline 의미
사용자가 browser(Chrome 같은) 에 없어도 Refresh Token 을 발급 받을수 있는지 없는지는 설정합니다.
offline 사용자가 browser를 나가도 응용 프로그램에서 Refresh Token을 받아서 쓸수 있습니다.
online 은 그반대 입니다. 서비스를 개발하는데 중요한 설정 사항 입니다.
Scope 값
여기에 커서를 올리면
위와 같이 Socpe 범위 주소 값이 나옵니다.
위에 3개를 등록 해줘야 사용자의 정보를 같이 얻어올수 있습니다.
저는 이 예제 에서는 사용자 정보를 가져 오지 않고 analytics 정보만 얻어 오기 때문에 추가 하지 않았습니다.
Front End
위에 주소를 링크를 걸어서 실행 시켜 줘야 합니다.
예를 들면 아래와 같이 링크를 걸어 줍니다.
<a href="
https://accounts.google.com/o/oauth2/v2/auth?
scope=https://www.googleapis.com/auth/analytics.readonly&
access_type=offline&
include_granted_scopes=true&state=state_parameter_passthrough_value&
redirect_uri=http://localhost:8181/thkomeetB/account/googlesigncallback&response_type=code&client_id=711155811271-2f5eetje4gtic3lv2d6tlvmt3ne8fmm2.apps.googleusercontent.com
">로그인</a>
그리고 나면
위와같은 페이지가 나오고
로그인을 하면
위와 같은 허가권 팝업이 나옵니다. 허용을 하면
그럼 아래와 같이 redirect url 로 옮겨 갑니다. (아마 Back End 서버에서 Brack Point 걸고 대기타면 해당 URL 로 들어 오는것을 좀더 명확이 체감 할수 있습니다.ㅎㅎ .. )
http://localhost:8181/thkomeetB/account/googlesigncallback?
state=state_parameter_passthrough_value&code=4/FQGw5F6BFjM3DYBlbeybuFSTCxKQ69ocwkpiS9r5Fba2dX0h_AJ5sP7yEqyFvAE-cfBfDysIZlELKN4WTH_HruQ&
scope=https://www.googleapis.com/auth/analytics.readonly
이제 해당 Query url 정보로
BackEnd
에서 access_token 토근을 얻는게 목적이죠,
구글 에서는 아래 사이트에 Post로 보내서 토큰을 가져가라고 합니다.
아래 코드는 Redirect 후 Access_token 을 받아 오는 코드입니다.
그리고 나서
Backend log 을 보면
여기서 Id_token 은 JWT 토큰 입니다.
해당 자료는
https://idlecomputer.tistory.com/240 (Token 인증 개념 JWT (Login 기능을 위한)(2))
보면 자세히 정리 해뒀습니다
위와 같이 추가 된것을 알수 있습니다.
'Web ' 카테고리의 다른 글
방문자 행동 분석 heat map (0) | 2019.03.25 |
---|---|
동적 웹 크롤러 (seleniumhq) (0) | 2019.03.23 |
Google web-login (0) | 2019.03.21 |
tomcat startup 시 Lock ? Hang ? Slow 현상 (1) | 2019.03.07 |
Spring 에서 @Controller 찾지 못할때 (0) | 2019.02.19 |