portone_flutter icon indicating copy to clipboard operation
portone_flutter copied to clipboard

Pass 설치하기가 동작하지 않습니다.

Open andrewlee1228 opened this issue 3 years ago • 13 comments

Pass 앱 미설치인 상태에서 본인인증을 진입하고

화면 아래 PASS 설치하기를 누르면 스토어로 이동하지 않습니다. KakaoTalk_Photo_2022-03-08-17-10-36

andrewlee1228 avatar Mar 08 '22 08:03 andrewlee1228

[PASS 설치하기]는 웹뷰 환경에서 작동하지 않는 것이 정상이라고 합니다. 즉 본인인증 창이 웹뷰 안이라는 것을 인식해 저 버튼이 동작하지 않게 막아놓은 것이고 라이브러리 차원에서 대응이 되는 부분이 아닙니다. 현재 iamport_flutter은 pass 앱이 설치되어 있지 않아도 본인인증 최종 단계에서 앱을 실행했을 시 설치가 안되어 있으면 스토어로 이동하도록 설정해놓았습니다.

anymate98 avatar Mar 08 '22 08:03 anymate98

@anymate98 안녕하세요 답변 감사합니다.

말씀처럼 "pass 앱이 설치되어 있지 않아도 본인인증 최종 단계에서 앱을 실행했을 시 설치가 안되어 있으면 스토어로 이동하도록 설정해놓았습니다." 최종 단계에서 PASS앱 실행하기, 설치하기 버튼을 누르면 실행이 되지 않습니다. KakaoTalk_Photo_2022-03-08-19-06-36

testvalleyandrewlee avatar Mar 08 '22 10:03 testvalleyandrewlee

플러터 앱에서의 설정은 다음과 같습니다. 가맹점 코드는 일부로 물결표시로 감추었습니다

image

testvalleyandrewlee avatar Mar 08 '22 10:03 testvalleyandrewlee

@testvalleyandrewlee 위 사진의 버튼에서 실제 앱을 실행하는 것은 [인증확인] 버튼 뿐입니다. 저 버튼에만 적용되는 내용이므로 다시한번 확인 부탁드리겠습니다.

anymate98 avatar Mar 08 '22 10:03 anymate98

@anymate98 답변감사합니다 이제 퇴근 할 수 있겠어요 ㅎㅎ

testvalleyandrewlee avatar Mar 08 '22 10:03 testvalleyandrewlee

인증확인 버튼도 앱을 실행시키진 못하는거 같습니다. 말 그대로 인증확인 여부 modal만 보여주는거 같습니다

testvalleyandrewlee avatar Mar 08 '22 10:03 testvalleyandrewlee

혹시 테스트 기기 정보를 알 수 있을까요? (android/ios, version등)

anymate98 avatar Mar 08 '22 10:03 anymate98

인증확인 버튼이 앱을 실행시키는 것은 제 착각이었던 것 같습니다.. 저 화면으로 넘어갈 때 아무 일도 안일어나나요?

anymate98 avatar Mar 08 '22 10:03 anymate98

  1. PASS앱 인증하기를 누르고
  2. 이름 휴대폰 보안문자를 입력합니다
  3. 확인을 다음과 같은 화면이 나오고 인증확인을 누르면 모달만 나오고 아무일도 일어나지 않습니다.

저는 android 12 버전에서 개발중입니다. 에뮬레이터와 실기기 모두 android 12에서 테스트 하였습니다

자동으로 패스앱 실행은 안된다고 생각하고 일단은 화면의 안내문 처럼 패스앱에서 인증을 거치고 돌아오면 자동으로 인증 처리가 될 것을 기대했으나 인증확인을 직접 눌러야지만 인증이 완료 됩니다. 혹시 아임포트에 앱의 스킴을 추가 하는 곳이 있을까요 ? 앱으로 돌아와 자동으로 인증 되려면 앱 스킴을 아임포트가 알고 있어야 하는게 아닌가 싶습니다

Screenshot_20220308-221350.jpg

testvalleyandrewlee avatar Mar 08 '22 13:03 testvalleyandrewlee

앱이 설치되어 있지 않을 경우의 반응 지금 확인했습니다. 작동방식이 처음 pass 본인인증 개발 당시와는 좀 달라진 것 같은데 앱을 지우고 해보니까 [PASS앱 설치하기]를 누르고 조금 있다가 앱 설치하라는 문자메시지가 날라오네요.. 아무래도 이것이 본인인증 서비스에서 웹뷰 환경에서의 대안으로 제시하는 것 같습니다.

우선 휴대폰 본인인증의 안드로이드에서 두가지 작동과정을 다시 정리해서 설명드리자면(아임포트 측 로직 미포함)

  1. 모바일 브라우저
  • 본인인증시 앱을 직접 실행시켜 동작
  • [PASS 실행하기]등의 버튼이 실제로 눌림
  • 일반적으로 앱을 별다른 처리 없이 실행가능한 환경이기에 [설치하기]를 누르면 실제로 플레이스토어로 넘어감
  1. 웹뷰
  • 본인인증시 다수의 앱 개발사들이 앱을 실행시키지 못한다고 판단, 푸쉬알림을 통해 동작(앱이 설치되어야만 작동)
  • 실행하기, 설치하기 버튼이 원천적으로 막혀있음
  • [PASS앱 설치하기]를 누르면 버튼이 당연히 동작하지 않지만 문자메시지로 설치할 수 있는 링크를 보내줌

이 두가지를 구분하는 수단은 브라우저/웹뷰의 user agent로 생각됩니다. 실제로 user agent를 안드로이드 크롬 브라우저의 그것으로 위조하면 작동이 달라집니다. 설치하기를 눌러서 문자메시지를 받아보셨는지는 모르겠지만 확실히 불편한 방식인 것 같습니다. 앱스킴의 경우에도 이미 iamport_flutter에는 다 등록이 되어있습니다. 다만 웹뷰에서는 그것을 이용하는 로직이 없어서 문제인 것이고..

이를 해결하기 위해서는 본인인증시에 user agent를 라이브러리 차원에서 바꿔주는 것이 최선으로 보입니다. 라이브러리를 개발하고 서비스하는 입장에서도 앱 실행 로직이 완비되어있다면 굳이 웹뷰쪽 분기를 탈 이유가 없으므로 다음 버전에 user agent를 하드코딩하거나 모드의 옵션을 제공하는 파라미터를 만들어서 배포하겠습니다.

anymate98 avatar Mar 08 '22 14:03 anymate98

감사합니다 !!

testvalleyandrewlee avatar Mar 08 '22 14:03 testvalleyandrewlee

@anymate98 안녕하세요, 저도 해당 이슈가 발생하여 UA 를 강제로 안드로이드 크롬 값으로 변경해보니 동일하게 PASS 인증 마지막 과정에 "PASS 실행하기, 설치하기" 두가지 버튼이 동작하지 않습니다.

위 내용과 별개로, 두 버튼을 눌렀을때 각종 앱 실행 로직이 작성되어있는 웹뷰의 navigationDelegate 가 trigger 되지 않는걸 확인했습니다.

테스트는 안드로이드 환경에서 0.10.2 버전으로 테스트 하였습니다.

x86kernel avatar Sep 23 '22 15:09 x86kernel

@x86kernel 현재 PASS 앱은 통신3사/알뜰폰, iframe/리다이렉션, 웹뷰/브라우저, 안드로이드/iOS 모두 다르게 동작하고 있다고 합니다. 현재 직접 실행해본 바로는 안드로이드의 경우 user agent를 크롬의 그것으로 해도 웹뷰 인식을 바꿀 수가 없었고 엣지의 user agent를 사용해보니 변화하는 것을 확인했습니다. Mozilla/5.0 (Linux; Android 10; HD1913) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.5195.136 Mobile Safari/537.36 EdgA/100.0.1185.50 한번 사용해보시는 것을 권해드립니다.

PASS 실행하기, 설치하기 버튼이 작동하지 않는 것의 경우 확인을 해보니 url 로딩 라이브러리에 deprecated된 함수들을 사용하고 있어 발생하는 문제로 확인이 되었고 이는 sdk 상에서 추가적인 수정이 필요해보이므로 곧 적용 및 테스트 이후 배포하겠습니다.

일반적인 경우, 안드로이드에서는 알뜰폰을 사용할 경우 무조건 푸쉬알림으로 동작하며 그 외에는 웹뷰가 아닌 환경(브라우저)에서 리다이렉션으로 동작할 경우에만(m_redirect_url 존재) 앱을 직접 실행하는 방식을 사용합니다. 이를 웹뷰상에서 우회해 앱에서도 PASS앱을 직접 실행해 모달로 띄울 수 있는 방법이 ua 조작입니다. iOS에서는 알뜰폰의 동작이 안드로이드와 동일하지만 통신3사의 경우 웹뷰이더라도 리다이렉션이라면 푸쉬가 아닌 앱을 직접 실행하는 방식을 사용할 수 있습니다.

이를 도식화 한 것이 다날 측에서 제공받은 아래 이미지입니다. IMG_0925

anymate98 avatar Oct 05 '22 06:10 anymate98