마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 세션에 관한 질문입니다.

0 추천
안녕하세요 안드로이드를 공부하고있는 초보 개발자입니다.

개발하고 있는 도중 어려운 상황에 부딪혀 이렇게 질문 드립니다.

로그인 세션에 관한 문제인데요

우선 구조는 이렇습니다.

APP -> LoginCheck -> Login -> SuccessView

이렇게 나아가는 구조인데 로그인 체크에서 세션ID를 확인 후 true면 SeccessView로 넘어가게 하려합니다.

여기서 문제는 세션ID값을 가져오는 것 까지는 되었는데 해당하는 세션ID값으로 로그인한 사용자가 입력한 ID 즉 로그인 ID값을 가져올 수 잇는지 궁금합니다.

세션의 ID값으로 사용자의 로그인 ID값을 가져올 수 있나요??

테스트로 PHP에 로그인 페이지를 작성 후 테스트를 해보니 세션ID는 계속 가지고 있지만 사용자의 정보는 전부 없어지는 상황이 발생했습니다. 아직 제가 세션에 관한 정확한 지식이 많이 없어 이렇게 헤메고 있네요....

제가 생각하기로는 세션ID값을 가지고 사용자의 정보를 가지고 올 수 있다고 생각하고 있습니다.

세션에 저장할 때 List 처럼 SESSION[세션이름]이런 식으로 저장 후 저장한 세션의 이름을 불러오면 된다고 생각해서 그렇습니다. 제가 생각한게 맞나요??

저는 지금  $_SESSION[$id] = $id; 이런식으로 저장을 한 후에 ECHO $_SESSION[$id]로 호출하여 값을 출력하여 확인하고 있는데 처음 로그인 때는 사용자의 ID값이 정확히 출력이됩니다. 하지만 새로고침이나 주소를 다시 엔터치고들어가면 세션ID값을 유지가 되는데 $_SESSION[$id]의 값은 사라지는 현상이 생깁니다.

참고로 세션 ID값을 DB에 저장하여 가져오는 방식말고 다른 방식으로 가져오는 것을 찾고 있습니다.

부탁드리겠습니다...
갭알자 (420 포인트) 님이 2016년 1월 26일 질문
갭알자님이 2016년 1월 26일 수정
Android 개발하시는분들이 보통 php도 알긴 하지만 이런 문제는 php개발자에게 한번 여쭤보세요
http://www.phpschool.com/
아 죄송합니다.....앱이랑 PHP랑 연동하면서 하는 문제라... 어디에 글을 남겨야할지 몰랐네요....혹시 안드로이드에서 세션을 유지하는 방법도 있나요??

2개의 답변

0 추천
HttpURLConnection 사용하여 통신할 경우 아래와 같이 쿠키값에 추가하면 세션이 유지 됩니다. 
Collection<String> c = (Collection<String>) headerFields.get("Set-Cookie");
String cookies = "";
volley 라이브러를 사용 할 경우 header 부분에 쿠키 값을 입력하여 세션유지 가능합니다. 
 
r기린ㄴㄴㄴ (460 포인트) 님이 2016년 1월 29일 답변
0 추천
Source: https://github.com/godmode2k/web_examples

C/S는 Android < - > APM (Apache, PHP, MySQL) 으로 되어있습니다.

Android, PHP 에서 각각 session 을 유지하며, PHP 에서 JSON 으로 result 값을 보내줍니다.
그리고 예제는 가입, 로그인, 예약 등 간단한 테스트로 구성되어 있습니다.

-----

아래 내용은 Session 관련입니다.

Android 에서 테스트 하실 때 주의하실 점은, HttpURLConnection.setRequestProperty(...) 에서

<User-Agent> 값을 "mobile_app" 으로 하셔야 합니다. (이부분은 PHP 에서 수정가능 합니다.)

그리고 PHP Session 유지 부분은 잘 되는지 서버에서도 확인을 해보셔야 합니다.

(PHP5 Session 파일경로, Ubuntu 기준: /var/lib/php5)

즉, ... HttpURLConnection.getHeaderField( "Set-Cookie" ); ... 에서 받은 PHPSESSID 값이 PHP Session 파일경로에 있는지, session 정보는 맞는지 확인 합니다.

-----

예전에 여기에서도 답변을 하였습니다. 참고 하시기 바랍니다.
"우분투서버와 안드로이드 통신"
http://www.masterqna.com/android/56683/%EC%9A%B0%EB%B6%84%ED%88%AC%EC%84%9C%EB%B2%84%EC%99%80-%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%ED%86%B5%EC%8B%A0

i hope this may help you.
익명사용자 님이 2016년 1월 29일 답변
...