문의 시, 사용하시는 개발환경과 디벨로퍼스 앱ID를 알려주세요.
개발환경: java spring mvc
앱 ID: 1012807
로그인 구현시 http://127.0.0.1…일때는 로그인에 문제가 없었는데
도메인을 등록하고부터 HTTP 상태 500 – 내부 서버 오류 Request processing failed; nested exception is java.lang.NullPointerException 오류가 발생합니다.
그전에 잘 되었는데 getAccessToken에 널 값이 들어오는거 같아요. 어떤 문제가 있는걸까요?
안녕하세요.
오류 발생 시 전달한 파라미터 값과 응답 내용을 로깅하여 확인 부탁드립니다.
카카오측 로그에는 인가코드 발급 이력만 있고 접근토큰 발급 이력은 확인되지 않아 접근 토큰 발급이 진행되지 않거나 파라미터 또는 메소드가 잘못되어 오류가 발생하는 것으로 보이는데요
실제로 요청하더라도 client_id 값이 잘못되어 앱 특정이 안되는 경우 확인이 어렵습니다.
오류 발생 시 전달한 파라미터 값과 응답 내용을 로깅하여 확인 부탁드립니다.
Kakao login check
- response_type=code
- client_id=db3d8ba290**********************
- redirect_uri=http://every.com/auth/kakao/callback
- state=c4a41972-f177-418e-8118-5ec7af73d607
근본 원인 (root cause)
java.lang.NullPointerException
com.github.scribejava.core.oauth.OAuth20Service.signRequest(OAuth20Service.java:173)
com.ys.every4ju.member.controller.KakaoLoginBO.getUserProfile(KakaoLoginBO.java:70)
com.ys.every4ju.member.controller.MemberController.callbackKakao(MemberController.java:176)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.base/java.lang.reflect.Method.invoke(Method.java:566)
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792)
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1043)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
javax.servlet.http.HttpServlet.service(HttpServlet.java:655)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
scribejava 사용하는 것으로 보이는데요 정확한 NPE 발생위치를 확인해 보시는게 좋을것 같습니다.
로그상에서는 카카오 로그인을 위한 DefaultApi20 빈이 등록되지 않아 발생하였거나 등록하였지만 설정 미스 등의 이유로 정상동작하지 않는 것으로 보입니다.
DefaultApi20 상속 받은 객체 정상 등록되었는지 또 토큰 발급을 요청하는지 디버깅 해보시는게 좋을것 같습니다.
그런데http://127.0.0.1:8080일때는 로그인에 문제가 없었는데 도메인에 사이트이름을 수정하고부터 바로 로그인에 안되는 문제가 위에 말씀하신 문제 때문인가요?
보통 이러한 경우는 환경설정 값이 반영되지 않아 clinet_id 값이 누락되거나 하는 경우 발생하는데요
서비스측 로그에서는 접근토큰 발급 이력이 없습니다.
만약, client_id 값이 누락되어 요청한 경우 로그를 특정할 수 없어 확인이 어려운데요
백엔드 IP 알려주시면 해당 IP에서의 요청 이력을 확인해 보겠습니다.
3.39.85.90 입니다
해당 IP에서 접근토큰 요청 이력은 3일 오전 4시 이후로 존재하지 않습니다.
따라서 요청 자체가 진행되지 않는 것으로 보이는데요
구현하신 카카오 로그인용 모듈에서 OAuth20Service를 정상 생성 하셨는지 확인해 보시는게 좋을것 같습니다.
추가로 API 요청이 이루어지는지 확인 부탁드립니다.
네 감사합니다.
어제 질문에 이어서 로그인은 됐는데 사용자정보가 넘어오지 않는데 혹시 그 이유가 사업자번호를 등록하지 않아서 그런가요?
안녕하세요.
어떤 정보를 말씀하시는건가요?
일부 항목 정보가 전달되지 않는다는 말씀이신가요?