카카오 로그인 무한 대기(?)

문의 시, 사용하시는 개발환경과 디벨로퍼스 앱ID를 알려주세요.


현재 스프링 부트를 사용했으며, 1108272입니다. 앱 ID. 안드로이드 앱 개발 중입니다.

카카오 로그인 시

현재 서버한테 토큰 정보가 안넘어가는 것 같고, 카카오 로그인시 흰색 창에 왼쪽 위에 "카카오 로그인 중…"이란 문구가 뜨면서 무한 대기 상태에 빠지게 됩니다. 이유를 모르겠습니다.

로그를 보니 인가코드 요청 이후 토큰 발급요청이 없습니다.

개발하신 리다이렉트 URI 돌아가서 에러가 발생했거나 토큰요청을 잘못했을 것으로 추정됩니다.

리다이렉트 URI 로깅하셔서 원인 확인해보시면 좋을 것 같습니다.

안녕하세요! 답변 감사합니다. 혹시 리다이렉트 URL 로깅 하는 방법도 알 수 있을까요??! 초보라 죄송합니다…!

해당 시스템 개발환경별로 다르므로
카카오에서는 어떤 시스템을 사용하시는지 몰라 안내드릴 수 없습니다.

해당 코드에 로그 출력 하는 부분 추가하셔야 하니 관련 내용 검색해보시면 좋을 것 같습니다.

답변 감사합니다. 제가 빼먹은 부분이 있습니다. 저희 앱은, 리액트로 웹 기반으로 개발 후 PWA를 사용해 안드로이드/애플 앱으로 전환했습니다. 이 과정에서 웹 개발시에는 로그인이 잘 작동하는걸 확인했고 이후 앱으로 전환후 해당 오류가 나왔습니다. 이에 대해, 참고할 만한 사전 지식이 있을까요?

어떤 오류가 발생했나요? 관련 상세 로그 공유해주시겠어요?


동의화면에서 동의하기 선택후 사진처럼 넘어갑니다.

현재 정확한 오류명은 모르겠으나 토큰 정보가 넘어오지 않는다는 문제만 발생합니다. 사진과 같은 현상만 나타납니다.

개발하신 코드에서 발생하는 문제이므로 상세 로그 첨부 부탁드려요.

캡쳐하신 화면으로는 어떤 상황인지 알 수 없습니다.

답변 감사합니다 현재 아래와 같은 두개의 에러 로그가 찍힙니다
2024-10-17T08:48:03.534+09:00 INFO 1 — [nio-8080-exec-4] o.apache.coyote.http 11.Http11Processor : Error parsing HTTP request header
Note: further occurrences of HTTP request parsing errors will be logged at DEBU G level.

java.lang.IllegalArgumentException: Invalid character found in method name [MGLN DD_13.124.151.164_80800x0a…]. HTTP method names must be tokens
at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11Inp utBuffer.java:407) ~[tomcat-embed-core-10.1.25.jar!/:na]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java :262) ~[tomcat-embed-core-10.1.25.jar!/:na]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLig ht.java:63) ~[tomcat-embed-core-10.1.25.jar!/:na]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(Abstract Protocol.java:904) ~[tomcat-embed-core-10.1.25.jar!/:na]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpo int.java:1741) ~[tomcat-embed-core-10.1.25.jar!/:na]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBas e.java:52) ~[tomcat-embed-core-10.1.25.jar!/:na]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoo lExecutor.java:1190) ~[tomcat-embed-core-10.1.25.jar!/:na]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPo olExecutor.java:659) ~[tomcat-embed-core-10.1.25.jar!/:na]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskTh read.java:63) ~[tomcat-embed-core-10.1.25.jar!/:na]
at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
:
2024-10-16T20:23:38.038+09:00 INFO 1 — [nio-8080-exec-8] o.apache.tomcat.util .http.parser.Cookie : A cookie header was received [app-platform=iOS App Store] that contained an invalid cookie. That cookie will be ignored.
Note: further occurrences of this error will be logged at DEBUG level.

기재하신 로그로는 내용 파악할 수 없네요.

사이트 url 알려주시겠어요?

안녕하세요! 답변이 늦어 죄송합니다.
현재 리액트와 스프링 부트로 개발된 웹 주소를 다음과 같습니다.
https://app.bunout.info/
현재 AOS는 해결 됬지만, IOS의 경우도 PWA Builder를 사용해 ios 앱으로 변경 후 테스트했지만 카카오 애플 로그인 모두 안됬습니다. 위에 첨부한 사진처럼 나오며 로그인시 서버 에러 로그는(디버깅 레벨) 나오지 않았습니다. 다만, 카카오 로그인시 토큰 발급이 이루어지지 않는다는 점만 파악한 상태입니다.

안녕하세요.

(1) 현재 AOS는 해결 됬지만
ㄴ AOS 증상도 도일하게 PWA 배포 환경에서 리다이렉트 URI 진입 못한 상황인가요?

(2) 로그인시 서버 에러 로그는(디버깅 레벨) 나오지 않았습니다
ㄴ 해당 기기 사파리 기본 브라우저에서는 사이트 정상 로그인되나요?

(3) 카카오 애플 로그인 모두 안됬습니다.
ㄴ 애플로그인도 정상작동 안한다는 말씀이실까요?

(1) 안드로이드를 expo로 빌드했을때 동일한 문제가 발생하여 pwa builder를 사용해 다시 빌드 후 애플/카카오 로그인 문제를 해결했습니다. 현재 aoi는 해결했습니다. 하지만 ios에서 동일한 문제가 나왔습니다.
(2) ios휴대폰으로 테스트 앱을 다운받아 실행할때 안된 것이며, 사파리 브라우저에서도 로그인 후 똑같이 위 댓글에 제가 첨부한 사진처럼 왼쪽 위에 "로그인 중…"표시가 나옵니다.
(3) 네. aos는 카카오/애플 로그인 모두 정상 작동, ios는 카카오/애플 모두 작동하지 않습니다.

안녕하세요! 아직도 해결책을 찾지 못한 상황입니다. 아직도 도움을 받을 수 있는지 조심스레 여쭤봅니다!

안녕하세요.

현재 문제가 발생하는 환경 (android/ios, native/web, user-agent)을 말씀 부탁드립니다.

리액트 기반으로 만들어 pwa builder로 ios앱을 만들었습니다. 즉, iOS에 배포된 웹 기반의 하이브리드 앱입니다.!

“로그인 중…” 메시지는 정상적인 카카오 로그인 이후 서비스측에서 표시하는 메시지 입니다.
회원님께서 구현하신 로직 상, 다음 단계로 진행되지 않고 멈춰있는 원인을 디버깅 해보셔야 합니다.

참고로 저희가 디버깅해 보았을 땐,
PWA 빌드한 웹뷰의 UserAgent 값은 Mozilla/5.0 (iPhone; CPU iPhone OS 17_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.1.2 Mobile/15E148 Safari/604.1 PWAShell 이며

이러한 정보로 서비스측 redirect_uri으로 돌아갔을 땐, 네이티브가 아닌 단순히 웹으로 판단되어 // 서버로 로그인 요청 전송 (fcmToken이 없으면 null로 전송) 로직으로 진입하지 못하고 있습니다.

답변 감사합니다. 저희가 디버깅 해본 결과, ios랑 사파리에서 작동이 되지 않았고 크롬과 같은 이 외 플랫폼에선 잘 작동 했습니다. 또한, 현재 pwa builder로 만든 aoi 앱은 잘 작동해 배포 중 입니다. 왜 ios와 사파리에서만 안되는지 모르겠습니다. 혹시, 애플에서만 요구하는 보안 관련 문제가 있을까요? 따로 설정해야하는… 저번에 webkit관련 오류가 나온적도 있습니다.

Do not access private instance variables of WKWebView via key-value coding. This will raise an exception when linking against newer SDKs.
Could not create a sandbox extension for ‘/var/containers/Bundle/Application/A4CC9F60-79DC-473A-AB36-4BA843C4C71A/BUNOUT.app’
NSBundle file:///System/Library/PrivateFrameworks/MetalTools.framework/ principal class is nil because all fallbacks have failed
Touch event gesture recognizer failed to reset after ending gesture deferral: (
“<WKDeferringGestureRecognizer: 0x1047161c0 (Deferrer for touch start (delayed reset)); baseClass = UIGestureRecognizer; state = Ended; view = <WKContentView: 0x10460d400>>“,
“<WKDeferringGestureRecognizer: 0x104716440 (Deferrer for touch end (immediate reset)); baseClass = UIGestureRecognizer; state = Ended; view = <WKContentView: 0x10460d400>>“,
“<WKDeferringGestureRecognizer: 0x104716580 (Deferrer for touch end (delayed reset)); baseClass = UIGestureRecognizer; state = Ended; view = <WKContentView: 0x10460d400>>“,
“<WKDeferringGestureRecognizer: 0x1047166c0 (Deferrer for touch end (synthetic tap)); baseClass = UIGestureRecognizer; state = Ended; view = <WKContentView: 0x10460d400>>“,
“<WKDeferringGestureRecognizer: 0x104716940 (Deferrer for image analysis); baseClass = UIGestureRecognizer; state = Ended; view = <WKContentView: 0x10460d400>>”
)
SecretWebView is created.
SecretWebView is cleaned.

Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don’t want.
Try this:
(1) look at each constraint and try to figure out which you don’t expect;
(2) find the code that added the unwanted constraint or constraints and fix it.
(Note: If you’re seeing NSAutoresizingMaskLayoutConstraints that you don’t understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
“<NSAutoresizingMaskLayoutConstraint:0x301c37d90 h=–& v=–& _UIToolbarContentView:0x102ba9400.width == 0 (active)>”,
“<NSLayoutConstraint:0x301c4b340 H:|-(0)-[_UIButtonBarStackView:0x119917e00] (active, names: ‘|’:_UIToolbarContentView:0x102ba9400 )>”,
“<NSLayoutConstraint:0x301c482d0 H:[_UIButtonBarStackView:0x119917e00]-(0)-| (active, names: ‘|’:_UIToolbarContentView:0x102ba9400 )>”,
“<NSLayoutConstraint:0x301c35fe0 ‘IB_Leading_Leading’ H:|-(0)-[_UIModernBarButton:0x1199bd180] (active, names: ‘|’:_UIButtonBarButton:0x119a28780 )>”,
“<NSLayoutConstraint:0x301c365d0 ‘IB_Leading_Leading’ H:|-(>=5)-[_UIModernBarButton:0x1199bd500] (active, names: ‘|’:_UIButtonBarButton:0x119a28a00 )>”,
“<NSLayoutConstraint:0x301c36080 ‘IB_Trailing_Trailing’ H:[_UIModernBarButton:0x1199bd180]-(>=8)-| (active, names: ‘|’:_UIButtonBarButton:0x119a28780 )>”,
“<NSLayoutConstraint:0x301c36620 ‘IB_Trailing_Trailing’ H:[_UIModernBarButton:0x1199bd500]-(>=5)-| (active, names: ‘|’:_UIButtonBarButton:0x119a28a00 )>”,
“<NSLayoutConstraint:0x301c36d00 ‘TB_Leading_Leading’ H:|-(8)-[_UIModernBarButton:0x1199bd880] (active, names: ‘|’:_UIButtonBarButton:0x119a28c80 )>”,
“<NSLayoutConstraint:0x301c36d50 ‘TB_Trailing_Trailing’ H:[_UIModernBarButton:0x1199bd880]-(0)-| (active, names: ‘|’:_UIButtonBarButton:0x119a28c80 )>”,
“<NSLayoutConstraint:0x301c37110 ‘UISV-canvas-connection’ UILayoutGuide:0x30065b2c0’UIViewLayoutMarginsGuide’.leading == _UIButtonBarButton:0x119a28780.leading (active)>”,
“<NSLayoutConstraint:0x301c373e0 ‘UISV-canvas-connection’ UILayoutGuide:0x30065b2c0’UIViewLayoutMarginsGuide’.trailing == _UIButtonBarButton:0x119a28c80.trailing (active)>”,
“<NSLayoutConstraint:0x301c37430 ‘UISV-spacing’ H:[_UIButtonBarButton:0x119a28780]-(0)-[UIView:0x119a0e300] (active)>”,
“<NSLayoutConstraint:0x301c37480 ‘UISV-spacing’ H:[UIView:0x119a0e300]-(0)-[_UIButtonBarButton:0x119a28a00] (active)>”,
“<NSLayoutConstraint:0x301c374d0 ‘UISV-spacing’ H:[_UIButtonBarButton:0x119a28a00]-(0)-[UIView:0x119a0e4c0] (active)>”,
“<NSLayoutConstraint:0x301c37520 ‘UISV-spacing’ H:[UIView:0x119a0e4c0]-(0)-[_UIButtonBarButton:0x119a28c80] (active)>”,
“<NSLayoutConstraint:0x301c4b660 ‘UIView-leftMargin-guide-constraint’ H:|-(0)-UILayoutGuide:0x30065b2c0’UIViewLayoutMarginsGuide’ (active, names: ‘|’:_UIButtonBarStackView:0x119917e00 )>”,
“<NSLayoutConstraint:0x301c4b430 ‘UIView-rightMargin-guide-constraint’ H:[UILayoutGuide:0x30065b2c0’UIViewLayoutMarginsGuide’]-(0)-|(LTR) (active, names: ‘|’:_UIButtonBarStackView:0x119917e00 )>”
)

Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x301c36080 ‘IB_Trailing_Trailing’ H:[_UIModernBarButton:0x1199bd180]-(>=8)-| (active, names: ‘|’:_UIButtonBarButton:0x119a28780 )>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.

안녕하세요.

전달해주신 오류는 웹뷰 구현 및 디버깅에 따른 경고 내용으로 카카오 로그인과 무관한 내용입니다.
현재 정상적인 카카오 로그인 및 리디렉션된 이후 서비스측 JS 로직에 의해 멈춰 있는 상황으로 확인됩니다.

서비스측 JS 로직 점검 부탁드립니다.