TIL: RN | WebView 하이브리드 앱 내부 login 유지

Lumpen·2023년 3월 7일
0

WebView

목록 보기
3/8

앱 전체를 웹뷰로 구현한 것이 아니라면
각 페이지별 웹뷰로 가져오는 화면이 있기 때문에
로그인 유지를 어떤 방식으로 할지 고민해야 한다

서버에서 로그인 토큰을 보관하는
세션 인증방식을 사용하지 않는다면 복잡할 수 있다

나는 jwt 토큰으로 구성된 서버에 대응을 해야했고
고려한 방식은 다음과 같다

  1. 각 WebView 가 실행될 때마다
    웹뷰 통신 (postMessage/onMessage)을 하여
    유저 정보가 유효한지 확인 후 native 에서 관리

  2. 전체 앱을 웹뷰 하나로만 구현

  3. 로그인 정보가 필요한 곳은 전부 WebView 로 구현

2번은 일단 고려 대상이 아니었다

1번은 토큰을 웹, 모바일 두 곳에서 관리해야하고
각각의 생명주기를 동기화 해야한다는 단점이 있었다

결국 3번을 채택하였는데,
문제는 WebView 는 각각 하나의 브라우저라는 점이다

localstorage 에 refresh token 을 저장하는 지금 방식으로는 로그인 WebView 에서 로그인을 해도
다른 WebView 들은 새로 접속하기 전까지
로그인에 대한 상태를 알 수 없다

결국 창을 이동할 때마다 WebView 를 새로 띄우는 방식으로 로그인 유지를 구현하였다

이 부분은 추후 조금 더 좋은 방식으로 수정해야겠다..

// TODO: 로그인 유지 방식 수정해야..
profile
떠돌이 생활을 하는. 실업자는 아니지만, 부랑 생활을 하는

0개의 댓글