이 문서는 Simple Easy Social Login (SESLP) 플러그인에서 각 소셜 로그인 공급자(Google, Facebook, LinkedIn, Naver, Kakao, Line)를 설정하는 방법을 안내합니다.
모든 로그인은 OAuth 2.0 또는 OpenID Connect(OIDC) 표준에 기반하며,
각 플랫폼의 콘솔에서 발급받은 Client ID / Secret을 입력해야 합니다.
https://{도메인}/?social_login={provider}
예:
https://example.com/?social_login=googlehttps://example.com/?social_login=facebookhttps://example.com/?social_login=linkedinhttps://example.com/?social_login=naverhttps://example.com/?social_login=kakaohttps://example.com/?social_login=line대부분의 공급자는 HTTPS가 필요하며, http:// 리디렉트는 거부됩니다.
Redirect URI는 콘솔에 등록된 값과 100% 일치해야 합니다
(프로토콜, 서브도메인, 경로, 쿼리 문자열까지 포함).
일부 공급자는 사용자가 이메일 제공을 거부할 수 있습니다. 이 경우 플러그인은 내부적으로 고유 ID 기반 사용자 연결을 지원합니다.
/wp-content/SESLP-debug.log/wp-content/debug.log (WP_DEBUG_LOG = true)SESLP는 OAuth 및 소셜 로그인 문제를 진단하는 데 도움이 되는 전용 디버그 로그 파일을 제공합니다.
/wp-content/SESLP-debug.log (SESLP 디버그 로그)/wp-content/debug.log (WP_DEBUG_LOG = true)[YYYY-MM-DD HH:MM:SS Z] [LEVEL] Message {"key":"value",...}
Z: UTC 또는 워드프레스 로컬 시간대 (예: KST) — SESLP 설정에서 선택 가능r********@g****.com)1) OAuth 시작
[DEBUG] State created {"provider":"google","state":"906****23","ttl":"10min"}
의미: CSRF 보호를 위한 state 토큰이 생성되었습니다. ttl은 10분간 유효합니다.
2) 콜백 진입
[DEBUG] Auth route triggered {"provider":"google","has_code":1}
의미: 콜백 라우트에 진입했습니다. has_code:1 → OAuth code 값을 수신했습니다.
3) State 검증
성공:
[DEBUG] State validated {"provider":"google","state":"906****23"}
실패:
[WARNING] State validation failed: not found/expired {"provider":"google","state":"906****23"}
4) 토큰 교환
[DEBUG] Token response (google) {"has_access_token":1}
의미: 액세스 토큰을 정상적으로 획득했습니다.
실패:
[ERROR] Token request failed (google) {"error":"..."}
5) 사용자 정보 요청
[ERROR] Userinfo request failed (google)
[WARNING] Invalid userinfo (google)
6) 사용자 연결 (Linker)
[DEBUG] Linker: signing in user {"user_id":45,"provider":"google","created":0}
[INFO] Login success (google) {"user_id":45,"email":"r********@g****.com"}
7) 리디렉션
[DEBUG] Redirect decision {"mode":"profile","user_id":45,"url":"https://example.com/wp-admin/profile.php"}
| 로그 메시지 (요약) | 원인 추정 | 조치 방법 |
|---|---|---|
| State validation failed | 타임아웃, 탭 전환, 중복 요청 | 빠르게 재시도, 시크릿/프라이빗 모드 사용 |
| Token request failed | Client ID/Secret/Redirect 오류, 요청 차단 | 개발자 콘솔, 방화벽, 서버 시간 확인 |
| Userinfo invalid | 스코프 누락 또는 이메일 비공개 | email, profile 스코프 추가, 사용자 동의 |
| User create failed | 계정 충돌 또는 워드프레스 제한 | 기존 사용자, 멀티사이트 규칙 확인 |
| Redirect missing | 코드 내 조기 return | 콜백 이후 Redirect 클래스 실행 여부 확인 |
아래의 각 공급자를 확장하고 해당 공급자를 위해 준비한 한국어 가이드 콘텐츠를 확인하세요.
openid email profilehttps://{도메인}/?social_login=googlehttps://example.com/?social_login=google
(1) Google Cloud Console 접속
→ https://console.cloud.google.com/apis/credentials
(2) 프로젝트 선택 → 새 프로젝트 생성
(3) API 및 서비스 → OAuth 동의 화면
(4) 사용자 유형: 외부(External)
(5) 앱 정보 입력
(6) 앱 도메인 설정
(7) 스코프 설정
openid, email, profile(8) 테스트 사용자 추가
(9) 저장
기본 스코프만 사용하면 검토 없이 운영 가능한 경우가 많습니다.
(1) API 및 서비스 → 사용자 인증 정보
(2) OAuth 클라이언트 ID 생성
(3) 애플리케이션 유형: 웹 애플리케이션
(4) 이름 설정 (예: SESLP – Front)
(5) Redirect URI 추가
https://{도메인}/?social_login=google(6) 생성 → Client ID / Secret 복사
JavaScript origin 설정은 일반적으로 필요 없습니다.
(1) WP 관리자 → SESLP 설정 → Google
(2) Client ID / Secret 입력 → 저장
(3) 프론트에서 로그인 테스트
(1) OAuth 동의 화면 게시 상태 확인
(2) 운영 전환 시 체크
(3) 운영 전환 후 전체 사용자 로그인 가능
redirect_uri_mismatch
→ URI 불일치 (프로토콜/서브도메인/쿼리 포함)
access_denied / disallowed_useragent
→ 브라우저 환경 문제 → 일반 브라우저 사용
invalid_client
→ Client ID/Secret 오류
email 없음
→ email 스코프 또는 사용자 설정 문제
로그 확인:
wp-content/SESLP-debug.logwp-content/debug.loghttps://{도메인}/?social_login=facebookpublic_profile, emailopenid를 사용하지 않습니다.(1) Meta for Developers 접속 → 로그인
→ https://developers.facebook.com/
(2) Create App → 일반(Consumer 등) 유형 선택 → 앱 생성
(3) 왼쪽 Products에서 Facebook Login 추가
(4) Settings(설정) 진입 → 아래 항목 점검
https://{도메인}/?social_login=facebookexample.compublic_profileemailemail은 대부분 검수 없이 사용 가능 (예외 존재)앱 설정에서 Development → Live로 전환
(1) WP 관리자 → SESLP 설정 → Facebook
(2) App ID / App Secret 입력 → 저장
(3) 프론트에서 로그인 테스트
Can't Load URL / redirect_uri 에러
→ Redirect URI가 콘솔 값과 정확히 일치하는지 확인
email null
→ 이메일 비공개 또는 미등록 → ID 기반 연결 필요
권한 오류
→ 고급 권한 사용 시 App Review 필요
Live 전환 불가
→ 정책/약관/데이터 삭제 URL 누락 또는 비공개
https://{도메인}/?social_login=linkedinopenid, profile, emailr_liteprofile, r_emailaddress 스코프를 점진적으로 폐기하고 있으며, 신규 앱은 반드시 OIDC 표준 스코프를 사용해야 합니다.(1) LinkedIn Developers 콘솔 접속
→ https://www.linkedin.com/developers/apps
(2) LinkedIn 계정으로 로그인
(3) Create app 클릭
(4) 필수 항목 입력
MySite LinkedIn Login)(5) Create app 클릭 → 앱 생성 완료
Development Mode가 기본 적용되어
openid,profile,
(1) 생성된 앱 페이지에서 Products 탭으로 이동
(2) Sign In with LinkedIn using OpenID Connect 항목 찾기
(3) Add product 클릭 → 승인 후 OIDC 사용 가능
(4) Auth 탭에서 OIDC 관련 설정 확인 가능
OIDC 스코프 사용 필수
openid→ ID 토큰 발급profile→ 이름, 사진, 헤드라인 등
(1) Auth → OAuth 2.0 settings 이동
(2) Redirect URLs 섹션에 아래 URI 추가
→ https://{도메인}/?social_login=linkedin
(3) 정확한 일치 확인 (프로토콜, 서브도메인, 슬래시, 쿼리 포함)
(4) 여러 환경 사용 시 각각 등록
https://localhost:3000/?social_login=linkedinhttps://staging.example.com/?social_login=linkedinhttps://example.com/?social_login=linkedin(5) Save 클릭
(1) Auth 탭 상단에서 확인
(2) 워드프레스 관리자 → SESLP 설정 → LinkedIn 탭
(3) 두 값 붙여넣기 → 저장
(4) 프론트엔드에서 LinkedIn 로그인 버튼으로 실제 테스트
보안 주의
- Client Secret은 절대 노출하지 마세요.
- 필요 시 Regenerate secret으로 재발급하세요.
| 스코프 | 설명 | 비고 |
|---|---|---|
openid |
OpenID Connect 표준 ID 토큰 반환 | 필수 |
profile |
이름, 사진, 헤드라인 등 프로필 정보 | 필수 |
email |
이메일 주소 반환 | 필수 |
구형 스코프 (
r_liteprofile,r_emailaddress)→ 2024년 이후 점진적 폐기 예정
→ 신규 앱은 사용 불가, 기존 앱도 OIDC 전환 권장
(1) redirect_uri_mismatch
→ 등록된 URI와 요청 URI가 조금이라도 다를 경우 발생
→ 프로토콜, 서브도메인, 슬래시, 쿼리까지 100% 일치 확인
(2) invalid_client
→ Client ID/Secret 오타 또는 앱 비활성 상태
→ 재확인 또는 Regenerate secret
(3) email NULL
→ 사용자 동의 거부 또는 email 스코프 누락
→ 동의 화면에서 이메일 사용 목적을 명확히 설명
(4) insufficient_scope
→ 요청 스코프가 앱에 승인되지 않음
→ OIDC 활성화 및 스코프 재확인
(5) OIDC not enabled
→ Products 탭에서 OpenID Connect를 추가하지 않음
로그 확인 경로:
/wp-content/SESLP-debug.log (SESLP 디버그 ON 시)/wp-content/debug.log (WP_DEBUG = true)https://www.linkedin.com/developers/apps)https://{도메인}/?social_login=linkedin)openid profile email (구형 스코프 사용 금지)참고
- SESLP는 OIDC 인증 흐름에 완벽 대응합니다.
- 기존 OAuth 2.0 방식은 더 이상 지원되지 않습니다.
- 신규 개발 시 반드시 OpenID Connect를 사용하세요.
https://{도메인}/?social_login=navername), 이메일(email)(1) 네이버 개발자 센터 접속
→ https://developers.naver.com/apps/
(2) 네이버 계정으로 로그인
(3) Application → 애플리케이션 등록 클릭
(4) 필수 항목 입력
MySite Naver Login)https://example.comhttps://example.com/?social_login=naver(5) 약관 동의 후 등록 → 앱 생성 완료
주의
- HTTPS 필수 → HTTP 등록 시 오류 발생
- 서브도메인별 별도 등록 필요
예:blog.example.com≠example.com
(1) 내 애플리케이션 목록 이동
(2) 앱 선택 → Client ID / Client Secret 확인
(3) 두 값 복사
(1) WP 관리자 → SESLP 설정 → Naver
(2) Client ID / Secret 입력
(3) Redirect URI 일치 확인
→ https://{도메인}/?social_login=naver
(4) 저장 후 로그인 테스트
| 정보 | 스코프 | 비고 |
|---|---|---|
| 이름 | name |
기본 제공 |
| 이메일 | email |
기본 제공 |
| 성별, 생일 | 별도 요청 | 검수 필요 |
- 사용자는 동의 화면에서 정보 제공을 선택할 수 있습니다.
- 이메일 거부 시
email = null→ ID 기반 계정 연결 필요- 민감 정보는 앱 검수 후 사용 가능
Redirect URI mismatch
→ 등록값과 요청값 불일치
HTTPS 오류
→ HTTP 사용 불가
서브도메인 문제
→ 각각 별도 등록 필요
email NULL
→ 사용자 거부 → ID 기반 처리
앱 검수 필요
→ 추가 정보 요청 시 필요
로그 확인:
/wp-content/SESLP-debug.log/wp-content/debug.log참고
- SESLP는 네아로(Naver Login) 인증 흐름을 완벽 지원합니다.
- 기본 로그인은 검수 없이 즉시 사용 가능합니다.
https://{도메인}/?social_login=kakaoprofile_nickname, profile_image, account_emailaccount_email은 실명/사업자 인증 후 사용 가능(1) Kakao Developers
→ https://developers.kakao.com/
(2) 로그인 → 내 애플리케이션 → 추가
(4) 저장
https://{도메인}/?social_login=kakao
| 스코프 | 설명 | 비고 |
|---|---|---|
profile_nickname |
닉네임 | 기본 |
profile_image |
프로필 이미지 | 기본 |
account_email |
이메일 | 인증 필요 |
- 민감 정보는 인증 후 사용 가능
- 동의 목적 명확히 작성
앱 설정 → 플랫폼
https://{도메인}
활성화 안 하면 invalid_client 오류 발생
REST API Key → Client ID
SESLP → Kakao
Client ID / Secret 입력 → 저장
redirect_uri_mismatch
→ URI 불일치
invalid_client
→ Secret 미활성화
email NULL
→ 사용자 거부
HTTPS 필요
SESLP는 Kakao OAuth + Client Secret 흐름 완벽 지원
https://{도메인}/?social_login=lineopenid, profile, email→ 승인 후 사용 가능
https://{도메인}/?social_login=line
→ SESLP에 입력
redirect_uri_mismatch
→ URI 불일치
invalid_client
→ Secret 오류
email NULL
→ 승인 안 됨
SESLP는 LINE OpenID Connect 완벽 지원