반응형

웹뷰로 개발 중이다.

로그인 후 모바일로 fcm token, device id를 가져와서 다시 서버로 전송하는 로직을 만드는데
정상적으로 서버에 token과 id를 받으면 user 테이블에 저장시키려고 한다.

 

그런데 update를 하려면 사용자 id나 seq를 알아야해서 session에서 꺼내려니 안됌

 

찾아보니 WebView와 Volley는 세션 공유하지 않기 때문이라고 한다.

그래서 세션을 못 이어받고, Spring Boot에서는 새로운 세션을 생성한다고 한다.

 

하지만 방법은 있다.

val cookieManager = CookieManager.getInstance()
val url = "http://ip:port"
val cookies = cookieManager.getCookie(url)
val sessionId = cookies?.split(";")?.find { it.trim().startsWith("JSESSIONID=") }?.trim()

... (중략)

override fun getHeaders(): MutableMap<String, String> {
    val headers = HashMap<String, String>()
    headers["Content-Type"] = "application/json"

    //세션 쿠키 넣기
    sessionId?.let {
        headers["Cookie"] = it
        Log.d("SESSION", "쿠키 전송: $it")
    }

    return headers
}

 

전체 코드는 아니지만 getHeaders로 보내면 위에 있는 cookies의 쿠키를 보내서 같은 쿠키를 사용하게 된다고함

반응형