티스토리 뷰

에러메세지

😭

문제상황 및 원인 

아임포트(iamport) KG이니시스의 통합 본인 인증 API를 통해 회원가입시 인증을 받고자 하였다. 문제 상황은 iamport_flutter의 가이드 코드를 활용하여 기존의 앱에 적용하고자 할때 발생했다. 아래의 iamport_flutter를 가이드라인에 따라 실행했을때 정상작동했다. 보다시피 Get.back(), Get.offNamed()라고 되어있고, 아래의 가이드 라인 프로젝트를 들어가서 보면, GETX로 라우팅, 상태관리가 설계되어있다. 

iamport_flutter 통합인증 부분

하지만 현재 개발중인 앱은 이미 Go Router를 통해 라우팅이 설정 되어있었고, Riverpod, Provider를 이용하여 상태관리를 하고 있었으며 대부분의 기능 구현도 끝난 상태였다. 따라서 아래처럼 pushNamed, pushReplacementNamed등의 기존의 방식으로 했더니 에러가났다. 

pushRelacementNamed -> 실패

 

루트 라우트는 당연히 등록되어있는상태였다.

라우트 등록되있는데 인식을 못하는 건가ㅠ

 

 

에러메시지를 보면

Navigator.onGenerateRoute null이고, 정의된 named route ('/certification-result') 찾을 없다는 의미다.

named route 사용하려면 MaterialApp 위젯에서 routes 매개변수를 설정하거나 onGenerateRoute 제공해야한다고한다. 하지만 

 

이미 MaterialApp.router로 했고, MaterialApp.router에는 onGenerateRoute 파라미터는 존재하지 않는다. 

생각해낸건 가장 기본적인 전달방식인 Navigator.push() 방식으로 MaterialPageRoute 사용하여 직접적으로 페이지를 푸시하기로 했다. (에러에 나온 pushNamed, pushReplacementNamed, PushNamedAndRemoveUntil 방식을 피해보기로!)

방식은 named route 설정 없이도 독립적으로 작동하므로 에러 없이 작동할거라 생각했기 때문이다. 아래는 해결책코드이며, 플러터에서 KG이니시스 API 이용하기에 정보가 부족했다. 오히려 결제로 더 유명한 API이기에 결제는 사례가 좀 있는거 같지만 인증은 사용 사례를 찾을수가 없었다. 물론 포트원 API, PortOne 개발자 센터, KG이니시스 공식 홈페이지가 있긴했지만 필요에 맞게 적절히 사용하기엔 힘들었고, 구글링을해도 정말 사례가 나오지 않았다. 나와같은 문제를 겪는 사람들이 분명 있을 거라 생각하며, 시간이 날때 Flutter에서 회원가입시 KG이니시스의 통합본인인증을 사용하는 방법이 담긴 포스팅을 해볼려고 한다.

 

해결책

이밖의 상황에도 navigator.ongenerateroute was null but the route named / was referenced 에러가 뜨면 push를 해보자!

CertificationResult로 result를 직접 보내자

 

 

 

 

 

 

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함