적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

초보 iOS 개발자의 일상/이슈모음집

운영 결제 QA 중 이니시스 웹뷰에서 세션 끊기는 이슈 (feat. www)

hongssup_ 2024. 9. 30. 18:32
반응형

**운영 결제 테스트 중 결제 완료 화면으로 넘어가지 않는 이슈

 

운영 QA에서, 결제 시 결제는 되는데 결제 완료 화면이 안뜨고 로그인 화면으로 넘어가버리는 이슈가 나왔다. 

안드로이드는 되다 안되다 하고 iOS는 안되고 웹도 안되고

 

결제 완료 후 redirect 되는 redirect host 가 Stage 주소로 되어있었음. 그럼 안되는게 맞자나?

Stage 에서는 세션이 없으니까 로그인으로 넘어가버리는 것.. 

(안드로이드가 왜 2번정도 되었는지는 미지수..)

 

서버 수정하니 웹이랑 안드로이드에서는 잘 되더라! 

근데 iOS 에서는 결제 후 여전히 로그인 페이지로 넘겨버리는 것.. 🤔

서버 쪽에서 로그 확인해주셨는데, 이니시스 웹뷰 시작과 동시에 세션이 없어진다고 하셨다. 

에엥 도대체 와이??!?!?? 🤷🏻‍♀️

 

iOS 개발환경에서는 문제없이 잘 되고 운영만 안된다.. 

dev 가 안되면 iOS 문제라고 할텐데 dev 는 되고 운영은 안될게 또 뭐람..? 🤯

 

웹 dev, release 브랜치 통합하고 서버 브랜치 통합하고, 로드밸런싱 문제인가 헬스 체크 다시 확인해보고 등등

 

다같이 거의 4시간 삽질하고 결국 11시에 원인 찾음.. 

webView 의 decidePolicyFor navigationAction 쪽에서 다음과 같이 쿠키와 도메인 로그를 찍어보았다. 

let cookieStore = webView.configuration.websiteDataStore.httpCookieStore

cookieStore.getAllCookies { cookies in
    for cookie in cookies {
        print("Cookie: \(cookie.name) = \(cookie.value)")
        print("Domain: \(cookie.domain), Path: \(cookie.path)")
    }
}

 

Cookie: session = .eJxNzs0Kg0AMBOB3yVnKJrvujy8j2U2CgkipSpHSd694KsxpZg7fB0Z76TbBYLxs2sE4CwyQo7TASp6NpNXgY6iplN5zionNmMm1nLCaWQhaqstCTrDHXJBz7zDF4FrKxGTXMSBaErqqVkijRClWTXxDNYmOsdUrTrWpTzX3cEGOTV-3BpE6mEXXfd7PBx_7NO7nU2FYj2X5W245L28-N_j-AE8hQp4.Gdw-iQ.-KF3D2Rg0aVIuD-Fsr67VMkn2FY

Domain: www.myapp.com, Path: /

...

Cookie: session = eyJfZnJlc2giOmZhbHNlLCJpZGVudGl0eS5hdXRoX3R5cGUiOm51bGwsImlkZW50aXR5LmlkIjoiYWx3YXlzIn0.Gdw-iQ.fbRb5GBCnqC9kDqw2Vi07hiLu6I

Domain: myapp.com, Path: /

 

그랬더니 도메인과 세션이 달라지는 것..!

 

iOS 쪽에서 웹 base url 로 설정해둔 값에 www 가 붙어서 생기는 문제였다...

둘 다 같은 도메인인 줄 알았더니 쿠키 설정 시에서는 다른 도메인으로 취급한다고 한다.. 

 

안드로이드, 웹, 서버 전부 도메인은 www 를 빼고 작업하셨다고 한다.

안드랑 웹에는 없지만 iOS 에는 있는 것.
dev 에는 없지만 운영에는 있는 것.

그게 바로 도메인의 www 였다눙

 

www 가 이렇게 큰 역할을 하는 친구였다니..!

아직 많이 부족한 나 자신을 돌아보며

dev는 되니까 iOS 문제는 아니지 않을까 생각하며 안일했던 나의 모습을 반성하고 

좀 더 적극적으로 로그를 찍고 분석을 해봐야겠다 다짐을 해본ㄷr.. 

 

항상 내가 문제일 수 있다는 생각을 가지고
사소한 것도 그냥 넘어가지 말기!
사소한 차이가 큰 문제를 만들 수 있다!!

 

 

 

오랜만에 역대급 야근을 해버렸다. 

열한시 넘어 퇴근.. 

 

그래도 해결을 하고 퇴근을 해서 다행이다. 

함께 야근해주신 동료분들께 죄송하고 많이 감사합니다.. 🫶🏻

728x90
반응형