• Contribution
    • 5.0
    • Archive

  • 시작하기
  • 실행환경
  • 개발환경
  • 공통컴포넌트
시작하기 실행환경 개발환경 공통컴포넌트
  • 공통컴포넌트 개요
  • 사용자디렉토리/통합인증
  • 보안
  • 통계/리포팅
  • 협업
  • 사용자지원
  • 시스템관리
  • 시스템/서비스연계
  • 디지털 자산관리
  • 요소기술
공통컴포넌트 개요
  • 공통컴포넌트 시작하기
  • 공통컴포넌트 환경설정
  • 공통컴포넌트 배포 파일의 구성
  • 공통컴포넌트 테이블 구성 정보
  • 패키지 간 참조 관계
  • 공통컴포넌트 축약어
사용자디렉토리/통합인증
    일반 로그인
    • SSO 연계서비스
  • 인증서로그인
  • 로그인정책관리
  • 아이디/비밀번호 찾기
    • 아이디 찾기
    • 비밀번호 찾기
보안
    권한관리
    • 권한관리 기능
    • 권한별 롤관리
  • 권한그룹관리
  • 그룹관리
  • 롤관리
  • 부서권한관리
  • 암호화 복호화
  • 로그인 시간관리
  • 비밀번호 만료기간 관리
통계/리포팅
  • 게시물 통계
  • 사용자 통계
  • 접속 통계
  • 화면 통계
  • 보고서 통계
  • 자료이용현황 통계
협업
    게시판
    • 블로그관리
    • 게시판관리
    • 게시판(방명록)
    • 게시판(통합게시판)
    • 템플릿관리
    • 댓글관리
    • 스크랩관리
    • 만족도조사
    커뮤니티
    • 커뮤니티생성관리
    • 커뮤니티사용관리
    • 커뮤니티회원관리
    문자메시지
    • 문자메시지서비스
    일정관리
    • 부서일정관리
    • 일정관리
    • 일지관리
    • 전체일정
    • 간부일정관리
    • 부서업무함관리
    • 주간/월간보고관리
    • 메모할일관리
    • 메모보고
    전자우편
    • 메일솔루션 연동 인터페이스
    주소록/명함록
    • 명함관리
    • 주소록관리
    전자결재
    • 약식결재
사용자지원
    사용자관리
    • 기업 회원 관리
    • 사용자 관리
    • 회원 관리
    개인화
    • 마이페이지
    약관관리
    • 약관관리
    • 저작권보호정책
    • 개인정보보호정책확인
    온라인헬프
    • 도움말
    • 용어사전
    • FAQ관리
    • Q&A관리
    • 행정전문용어사전관리
    • 온라인매뉴얼
    온라인참여
    • 상담관리
    • 설문관리
    • 설문조사
    • 설문템플릿관리
    • 설문응답자관리
    • 설문질문관리
    • 설문항목관리
    • 회의관리
    • 온라인POLL관리
    정보제공/알림
    • 뉴스관리
    • 사이트관리
    • 사이트맵
    • 추천사이트관리
    • 행사/이벤트/캠페인
    • 팝업창관리
    • 정보알림이
    • 배너관리
    • 로그인화면이미지관리
    • 최근검색어조회
    • 메인이미지관리
    • 통합링크관리
    • 사용자부재관리
    • 인터넷서비스안내및관리
    • 회의실관리
    • 회의실예약관리
    • Wiki기능
    • RSS태그관리
    • Twitter연동
    • 쪽지관리
    • 받은쪽지함관리
    • 보낸쪽지함관리
    • 직원경조사관리
    • 휴가관리
    • 당직관리
    • 포상관리
    • 기념일관리
    • 행사신청관리
    • 행사접수관리
    • 약도관리
    • 개인연차관리
    • Facebook 연동
시스템관리
    공통코드관리
    • 공통분류코드
    • 공통상세코드
    • 공통코드
    • 우편번호관리
    • 행정코드관리
    • 기관코드수신
    • 기관코드
    • 법정동코드
    • 도로명주소연계
    로그관리
    • 로그관리
    • 사용로그관리
    • 송/수신 로그관리
    • 시스템 이력관리
    • 웹로그관리
    • 접속로그관리
    • 개인정보조회로그관리
    메뉴관리
    • 메뉴관리
    • 메뉴생성관리
    • 바로가기메뉴관리
    프로그램관리
    • 프로그램관리
    배치관리
    • 배치작업관리
    • 배치결과관리
    • 스케줄처리
    시스템관리
    • 백업관리
    • 네트워크관리
    • 서버정보관리
    장애관리
    • 장애신청관리
    • 장애처리결과관리
시스템/서비스연계
  • 시스템연계관리
  • 연계현황관리
  • 연계메시지관리
  • 연계기관관리
디지털 자산관리
  • 개인지식관리
  • 지식맵
    • 지식맵관리(조직)
    • 지식맵관리(유형)
    • 지식정보제공
  • 지식전문가관리
  • 지식정보관리
  • 지식평가관리
요소기술
    신규 컴포넌트(v3.2)
    • 이중등록(Double Submit) 방지
    • Http Request 정보 취득
    • 숫자 지역화 처리
    • 날짜 지역화 처리
    • showModalDialog 대체 기능
    • HTTPS UrlRewrite filter
    • 중복 로그인 방지 기능
    • 출퇴근 관리
    • Resource close 처리
    • Basic 로그
    외부 추가 컴포넌트
    • EasyBatch(v3.2 신규)
    • Social Login(Naver, Google, KAKAO)
    • LDAP조직도관리(v3.2 신규)
    • 웹소켓메신저(v3.2 신규)
    메시지 처리
    • 경고메시지
    • 에러메시지
    • 정보메시지
    • 확인메시지
    인쇄/출력
    • 화면인쇄
    • 프린터상태확인
    • 전자관인출력
    쿠키/세션
    • 세션처리
    • 쿠키처리
    달력
    • 공휴일관리(달력)
    인터페이스/화면
    • 메인메뉴
    • 트리메뉴
    웹에디터
    • 웹에디터(공통컴포넌트 2.0 매뉴얼 참조)
    • WYSIWYG Editor(v3.2 신규)
    포맷/계산/변환
    • 날짜/시간/요일 계산
    • 날짜/시간/요일 변환
    • 날짜/시간/요일 유효성체크
    • 날짜/시간/요일 포맷변경
    • 랜덤날짜구하기
    • 랜덤문자열구하기
    • 랜덤숫자구하기
    • 문자열검색
    • 문자열변환
    • 문자열유효성체크
    • 문자열치환
    • 번호유효성체크
    • 단위계산
    • 숫자검색
    • 숫자변환
    • 숫자유효성체크
    • 숫자치환
    • 포맷유효성체크
    • 실수/정수/음수체크
    • 양력/음력변환
    • 인코딩/디코딩
    • 특수문자열처리
    • 환율계산
    • TIMESTAMP값구하기
    • 요소기술 Validation 체크
    시스템
    • 네트워크상태체크
    • 네트워크정보확인
    • 디렉토리감시
    • 디렉토리권한체크
    • 디렉토리복사
    • 디렉토리삭제
    • 디렉토리생성
    • 디렉토리속성정보체크
    • 디렉토리 압축/해제
    • 디렉토리이동
    • 송수신모니터링
    • DB서비스모니터링
    • 로그패턴검사
    • 디렉토리일자체크
    • 디렉토리존재체크
    • 디스크속성정보체크
    • 디스크유효용량체크
    • 디스크존재체크
    • 서버정보확인
    • 시스템정보확인
    • 유효메모리체크
    • 클라이언트정보확인
    • 파일권한체크
    • 프로세스모니터링
    • 네트워크서비스모니터링
    • 파일시스템모니터링
    • 파일다운로드
    • 파일변환
    • 파일보안
    • 파일복사
    • 파일비교
    • 파일삭제
    • 파일생성
    • 파일속성정보체크
    • 파일송/수신
    • 파일압축/해제
    • 프록시서비스
    • 파일동기화
    • 로그인세션정보체크
    • 파일업로드
    • 파일이동
    • 파일일자체크
    • 파일존재체크
    • 파일파싱
    • 프로세스ID확인
    • 프로퍼티
    • XML 데이터조립
    • XML 데이터파싱
    • 서버자원모니터링
    • 웹표준검사
    • HTTP서비스모니터링
페이지보기 페이지편집 문서에 이슈 생성 프로젝트에 이슈 생성

공통컴포넌트

    • 공통컴포넌트 시작하기
    • 공통컴포넌트 환경설정
    • 공통컴포넌트 배포 파일의 구성
    • 공통컴포넌트 테이블 구성 정보
    • 패키지 간 참조 관계
    • 공통컴포넌트 축약어
      • SSO 연계서비스
    • 인증서로그인
    • 로그인정책관리
      • 아이디 찾기
      • 비밀번호 찾기
      • 권한관리 기능
      • 권한별 롤관리
    • 권한그룹관리
    • 그룹관리
    • 롤관리
    • 부서권한관리
    • 암호화 복호화
    • 로그인 시간관리
    • 비밀번호 만료기간 관리
    • 게시물 통계
    • 사용자 통계
    • 접속 통계
    • 화면 통계
    • 보고서 통계
    • 자료이용현황 통계
      • 블로그관리
      • 게시판관리
      • 게시판(방명록)
      • 게시판(통합게시판)
      • 템플릿관리
      • 댓글관리
      • 스크랩관리
      • 만족도조사
      • 커뮤니티생성관리
      • 커뮤니티사용관리
      • 커뮤니티회원관리
      • 문자메시지서비스
      • 부서일정관리
      • 일정관리
      • 일지관리
      • 전체일정
      • 간부일정관리
      • 부서업무함관리
      • 주간/월간보고관리
      • 메모할일관리
      • 메모보고
      • 메일솔루션 연동 인터페이스
      • 명함관리
      • 주소록관리
      • 약식결재
      • 기업 회원 관리
      • 사용자 관리
      • 회원 관리
      • 마이페이지
      • 약관관리
      • 저작권보호정책
      • 개인정보보호정책확인
      • 도움말
      • 용어사전
      • FAQ관리
      • Q&A관리
      • 행정전문용어사전관리
      • 온라인매뉴얼
      • 상담관리
      • 설문관리
      • 설문조사
      • 설문템플릿관리
      • 설문응답자관리
      • 설문질문관리
      • 설문항목관리
      • 회의관리
      • 온라인POLL관리
      • 뉴스관리
      • 사이트관리
      • 사이트맵
      • 추천사이트관리
      • 행사/이벤트/캠페인
      • 팝업창관리
      • 정보알림이
      • 배너관리
      • 로그인화면이미지관리
      • 최근검색어조회
      • 메인이미지관리
      • 통합링크관리
      • 사용자부재관리
      • 인터넷서비스안내및관리
      • 회의실관리
      • 회의실예약관리
      • Wiki기능
      • RSS태그관리
      • Twitter연동
      • 쪽지관리
      • 받은쪽지함관리
      • 보낸쪽지함관리
      • 직원경조사관리
      • 휴가관리
      • 당직관리
      • 포상관리
      • 기념일관리
      • 행사신청관리
      • 행사접수관리
      • 약도관리
      • 개인연차관리
      • Facebook 연동
      • 공통분류코드
      • 공통상세코드
      • 공통코드
      • 우편번호관리
      • 행정코드관리
      • 기관코드수신
      • 기관코드
      • 법정동코드
      • 도로명주소연계
      • 로그관리
      • 사용로그관리
      • 송/수신 로그관리
      • 시스템 이력관리
      • 웹로그관리
      • 접속로그관리
      • 개인정보조회로그관리
      • 메뉴관리
      • 메뉴생성관리
      • 바로가기메뉴관리
      • 프로그램관리
      • 배치작업관리
      • 배치결과관리
      • 스케줄처리
      • 백업관리
      • 네트워크관리
      • 서버정보관리
      • 장애신청관리
      • 장애처리결과관리
    • 시스템연계관리
    • 연계현황관리
    • 연계메시지관리
    • 연계기관관리
    • 개인지식관리
      • 지식맵관리(조직)
      • 지식맵관리(유형)
      • 지식정보제공
    • 지식전문가관리
    • 지식정보관리
    • 지식평가관리
      • 이중등록(Double Submit) 방지
      • Http Request 정보 취득
      • 숫자 지역화 처리
      • 날짜 지역화 처리
      • showModalDialog 대체 기능
      • HTTPS UrlRewrite filter
      • 중복 로그인 방지 기능
      • 출퇴근 관리
      • Resource close 처리
      • Basic 로그
      • EasyBatch(v3.2 신규)
      • Social Login(Naver, Google, KAKAO)
      • LDAP조직도관리(v3.2 신규)
      • 웹소켓메신저(v3.2 신규)
      • 경고메시지
      • 에러메시지
      • 정보메시지
      • 확인메시지
      • 화면인쇄
      • 프린터상태확인
      • 전자관인출력
      • 세션처리
      • 쿠키처리
      • 공휴일관리(달력)
      • 메인메뉴
      • 트리메뉴
      • 웹에디터(공통컴포넌트 2.0 매뉴얼 참조)
      • WYSIWYG Editor(v3.2 신규)
      • 날짜/시간/요일 계산
      • 날짜/시간/요일 변환
      • 날짜/시간/요일 유효성체크
      • 날짜/시간/요일 포맷변경
      • 랜덤날짜구하기
      • 랜덤문자열구하기
      • 랜덤숫자구하기
      • 문자열검색
      • 문자열변환
      • 문자열유효성체크
      • 문자열치환
      • 번호유효성체크
      • 단위계산
      • 숫자검색
      • 숫자변환
      • 숫자유효성체크
      • 숫자치환
      • 포맷유효성체크
      • 실수/정수/음수체크
      • 양력/음력변환
      • 인코딩/디코딩
      • 특수문자열처리
      • 환율계산
      • TIMESTAMP값구하기
      • 요소기술 Validation 체크
      • 네트워크상태체크
      • 네트워크정보확인
      • 디렉토리감시
      • 디렉토리권한체크
      • 디렉토리복사
      • 디렉토리삭제
      • 디렉토리생성
      • 디렉토리속성정보체크
      • 디렉토리 압축/해제
      • 디렉토리이동
      • 송수신모니터링
      • DB서비스모니터링
      • 로그패턴검사
      • 디렉토리일자체크
      • 디렉토리존재체크
      • 디스크속성정보체크
      • 디스크유효용량체크
      • 디스크존재체크
      • 서버정보확인
      • 시스템정보확인
      • 유효메모리체크
      • 클라이언트정보확인
      • 파일권한체크
      • 프로세스모니터링
      • 네트워크서비스모니터링
      • 파일시스템모니터링
      • 파일다운로드
      • 파일변환
      • 파일보안
      • 파일복사
      • 파일비교
      • 파일삭제
      • 파일생성
      • 파일속성정보체크
      • 파일송/수신
      • 파일압축/해제
      • 프록시서비스
      • 파일동기화
      • 로그인세션정보체크
      • 파일업로드
      • 파일이동
      • 파일일자체크
      • 파일존재체크
      • 파일파싱
      • 프로세스ID확인
      • 프로퍼티
      • XML 데이터조립
      • XML 데이터파싱
      • 서버자원모니터링
      • 웹표준검사
      • HTTP서비스모니터링
  1. Home
  2. 공통컴포넌트
  3. 요소기술
  4. 외부 추가 컴포넌트
  • 페이지 보기
  • 페이지 편집
  • 문서에 이슈 생성
  • 프로젝트에 이슈 생성

이 페이지의 구성

Social Login(Naver, Google, KAKAO)

  • 개요
  • 특징
  • 설정방법
  • 사용방법
  • 참고자료

개요

Social Login은 네이버(Naver), 구글(Google), 카카오(Kakao)의 로그인 API를 이용하여 사용자를 인증하는 소셜 로그인 기능을 제공한다.

사용자는 각 서비스의 계정을 이용하여 별도의 로그인 정보를 입력하지 않고 연계 로그인을 진행할 수 있다.

구현은 ScribeJava 기반 OAuth 2.0 클라이언트를 사용한다.

flowchart LR L[로그인 화면] -->|소셜 로그인 버튼 클릭| A([네이버/구글/카카오 인증]) A -->|callback + code + state| C[oauthLoginCallback] C -->|state 불일치| F([Invalid OAuth state]) C -->|state 검증 성공| T[Access Token 조회] T --> P[사용자 프로필 조회] P --> R([인증 결과 화면])

특징

Social Login은 다음과 같은 기능을 제공한다.

  • 네이버(Naver), 구글(Google), 카카오(Kakao) 계정을 이용한 로그인
  • OAuth 2.0 인증을 통한 사용자 정보 조회
  • 서비스별 Client ID, Client Secret 및 Redirect URI 설정 지원
  • CSRF 방어를 위한 OAuth state 생성·세션 보관·콜백 검증

샘플 구현은 프로필 조회와 결과 메시지 표시까지 제공한다. 회원 DB 매핑과 세션 로그인은 업무에 맞게 추가로 구현해야 한다.

관련소스

유형대상소스설명비고
Controlleregovframework.com.ext.oauth.web.EgovSignupController.java소셜 로그인 화면과 콜백을 처리하는 컨트롤러
Classegovframework.com.ext.oauth.service.OAuthLogin.java인가 URL 생성, Access Token 및 프로필 조회
Interfaceegovframework.com.ext.oauth.service.OAuthConfig.java제공자별 인증·토큰·프로필 URL과 서비스명 상수
APIegovframework.com.ext.oauth.service.NaverAPI20.java네이버 OAuth 2.0 Authorization/Token URL을 제공하는 scribejava API 구현체
VOegovframework.com.ext.oauth.service.OAuthUniversalUser.java소셜 로그인 계정에 대한 VO
VOegovframework.com.ext.oauth.service.OAuthVO.java소셜 로그인 인증을 받기 위한 VO
JSPWEB-INF/jsp/egovframework/com/uat/uia/EgovLoginUsrOauth.jsp소셜 로그인 버튼이 있는 로그인 화면
JSPWEB-INF/jsp/egovframework/com/uat/uia/EgovLoginUsrOauthResult.jsp소셜 로그인 결과를 출력하는 페이지
XMLresources/egovframework/spring/com/context-oauth.xml소셜 로그인의 ID, Secret 등 인증값을 설정하는 XML

설정방법

소셜 로그인 API 생성 방법

각 소셜 로그인 서비스에서 애플리케이션을 등록하고 Client ID와 Client Secret을 발급받은 뒤, Redirect URI를 설정해야 한다.

<로그인 API 등록 URL>

  • 구글(Google) : https://console.cloud.google.com/apis/dashboard?hl=ko
  • 네이버(Naver) : https://developers.naver.com/products/login/api/api
  • 카카오(Kakao) : https://developers.kakao.com/docs/latest/ko/kakaologin/common

소셜 OAuth 인증값 설정 (context-oauth.xml)

각 소셜 로그인 서비스에서 발급받은 Client ID와 Client Secret, 인증 완료 후 이동할 Redirect URI 등의 정보를 context-oauth.xml에 설정한다.

  • 구글 로그인 인증 설정
<bean id="googleAuthVO" class="egovframework.com.ext.oauth.service.OAuthVO">
	<constructor-arg value="google" /> <!-- Service Name -->
	<constructor-arg value="googleClientID" /> <!-- googleClientID -->
	<constructor-arg value="googleClientSecret" /> <!-- googleClientSecret -->
	<constructor-arg value="http://localhost:8080/auth/google/callback" /> <!-- googleRedirectUrl -->
	<constructor-arg value="profile email" /> <!-- GoogleScope -->
</bean>
  • 네이버 로그인 인증 설정
<bean id="naverAuthVO" class="egovframework.com.ext.oauth.service.OAuthVO">
	<constructor-arg value="naver" /> <!-- Service Name -->
	<constructor-arg value="naverClientID" /> <!-- naverClientID -->
	<constructor-arg value="naverClientSecret" /> <!-- naverClientSecret -->
	<constructor-arg value="http://127.0.0.1:8080/auth/naver/callback" /> <!-- naverRedirectUrl -->
	<constructor-arg value="profile" /> <!-- naverScope -->
</bean>
  • 카카오 로그인 인증 설정
<bean id="kakaoAuthVO" class="egovframework.com.ext.oauth.service.OAuthVO">
	<constructor-arg value="kakao" /> <!-- Service Name -->
	<constructor-arg value="kakaoClientID" /> <!-- kakaoClientID -->
	<constructor-arg value="kakaoClientSecret" /> <!-- kakaoClientSecret -->
	<constructor-arg value="http://localhost:8080/auth/kakao/callback" /> <!-- kakaoRedirectUrl -->
	<constructor-arg value="profile_nickname account_email" /> <!-- kakaoScope -->
</bean>

사용자 인증 처리

비즈니스 규칙

소셜 로그인 버튼이 있는 로그인 화면으로 이동한다. CSRF 방어용 state를 1회 생성해 세션에 보관하고, 모든 제공자 인가 URL에 부착한다.

관련코드

@RequestMapping(value = "/uat/uia/oauthLoginUsr", method = RequestMethod.GET)
public String login(Model model, HttpSession session) throws Exception {
	LOGGER.debug("===>>> OAuth Login .....");

	model.addAttribute("loginRequestVO", new LoginRequestVO());
	model.addAttribute("defaultForm", new ComDefaultVO());

	// 콜백에서 대조할 CSRF 방어용 state를 1회 생성해 세션에 보관하고 모든 제공자 인가 URL에 부착한다.
	String state = generateState();
	session.setAttribute(OAUTH_STATE_SESSION_KEY, state);

	OAuthLogin naverLogin = new OAuthLogin(naverAuthVO);
	model.addAttribute("naver_url", naverLogin.getOAuthURL(state));

	OAuthLogin googleLogin = new OAuthLogin(googleAuthVO);
	model.addAttribute("google_url", googleLogin.getOAuthURL(state));

	OAuthLogin kakaoLogin = new OAuthLogin(kakaoAuthVO);
	model.addAttribute("kakao_url", kakaoLogin.getOAuthURL(state));

	return "egovframework/com/uat/uia/EgovLoginUsrOauth";
}

인증 완료 후 응답 처리

비즈니스 규칙

로그인 API 인증 완료 후 콜백에서 state를 세션 값과 대조한다. 검증에 성공하면 code로 Access Token과 사용자 프로필을 조회한다.

state가 없거나 세션 값과 다르면 "Invalid OAuth state."를 반환하고 프로필 조회를 진행하지 않는다. 프로필 응답에 사용자 식별자가 없으면 예외가 발생한다.

샘플 구현은 회원 DB 조회와 세션 로그인을 수행하지 않는다. 해당 처리는 주석 안내처럼 업무에 맞게 구현한다.

관련코드

@RequestMapping(value = "/auth/{oauthService}/callback", method = { RequestMethod.GET, RequestMethod.POST })
public String oauthLoginCallback(@PathVariable String oauthService, Model model,
		@RequestParam String code, @RequestParam(required = false) String state, HttpSession session) throws Exception {

	LOGGER.debug("oauthLoginCallback: service={}", oauthService);

	// CSRF(로그인 CSRF) 방어 - 콜백의 state를 세션에 보관한 값과 대조한다. 1회용이므로 검증 후 제거한다.
	String sessionState = (String) session.getAttribute(OAUTH_STATE_SESSION_KEY);
	session.removeAttribute(OAUTH_STATE_SESSION_KEY);
	if (sessionState == null || !sessionState.equals(state)) {
		LOGGER.warn("OAuth state가 일치하지 않아 콜백 요청을 차단합니다. service={}", oauthService);
		model.addAttribute("message", "Invalid OAuth state.");
		return "egovframework/com/uat/uia/EgovLoginUsrOauthResult";
	}

	OAuthVO oauthVO = null;
	if (StringUtils.equals(OAuthConfig.GOOGLE_SERVICE_NAME, oauthService)) {
		oauthVO = googleAuthVO;
	} else if (StringUtils.equals(OAuthConfig.NAVER_SERVICE_NAME, oauthService)) {
		oauthVO = naverAuthVO;
		if (state == null || state.isEmpty()) {
			model.addAttribute("message", "Invalid OAuth state.");
			return "egovframework/com/uat/uia/EgovLoginUsrOauthResult";
		}
	} else {
		oauthVO = kakaoAuthVO;
	}

	// 1. code를 이용해서 Access Token 받기
	// 2. Access Token을 이용해서 사용자 제공정보 가져오기
	OAuthLogin oauthLogin = new OAuthLogin(oauthVO);

	OAuthUniversalUser oauthUser = oauthLogin.getUserProfile(code); // 1,2번 동시
	if (oauthUser != null) {
		LOGGER.debug("OAuth profile received for service={}", oauthService);
	}

	// ========================================================================
	// 다음 부분은 업무의 목적에 맞게 커스텀 코드를 작성한다.
	// 3. 해당 유저가 DB에 존재하는지 체크 (google, naver, kakao에서 전달받은 ID가 존재하는지 체크)
	// String resultDBInfo = ""; // DB 체크 결과

	if (oauthUser == null) {
		model.addAttribute("message", "This user does not exist. Please sign up.");
	} else {
		model.addAttribute("message", "OAuth Sign-in succeeded.");
	}

	return "egovframework/com/uat/uia/EgovLoginUsrOauthResult";
}

소셜 로그인 버튼 구현(EgovLoginUsrOauth.jsp)

<a href="${ naver_url }"><img width="300" src="<c:url value='/images/egovframework/com/uat/uia/naver-login.png'/>" alt="Naver Login" /></a>
<a href="${ google_url }"><img width="300" src="<c:url value='/images/egovframework/com/uat/uia/google-login.png'/>" alt="Google Login" /></a>
<a href="${ kakao_url }"><img width="300" src="<c:url value='/images/egovframework/com/uat/uia/kakao-login.png'/>" alt="Kakao Login" /></a>

사용방법

{contextPath}/uat/uia/oauthLoginUsr로 이동하여 소셜 로그인을 진행한다.

image

사용예시

  • 소셜 로그인을 진행할 계정으로 로그인합니다.

image

  • 선택된 계정으로 사용자 인증을 시도합니다

image

  • 소셜 로그인이 성공한 경우 결과창을 확인 할 수 있습니다.

image

[!NOTE] 프로필 JSON은 DEBUG 레벨에서만 기록되며, 식별자·이름·이메일 등 민감정보 값은 마스킹된다. 샘플 구현은 결과 메시지만 화면에 표시하고, 회원 DB 조회와 세션 로그인은 수행하지 않는다.

참고자료

  • ScribeJava
  • Google Identity - OAuth 2.0
  • 네이버 로그인 API
  • 카카오 로그인
  • 대표전화  1566-3598 (070-4448-2678)
  • 대표문의메일  egovframesupport@gmail.com
전자정부 표준프레임워크 Git
이용 안내 라이센스

COPYRIGHT (C) 2024 eGovFramework. ALL RIGHTS RESERVED.