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

로그인 여부 처리 어떻게 해야될까요?

0 추천

안녕하세요 .. 어플 개발하다가 궁금한 게 있어서 여쭤봅니다 :)

제가 만드는 앱 대부분이 회원가입을 하고 로그인을 하는 방식입니다.

그런데 제가 몇 달 밖에 안배워서.. 이 부분을 대체 어떻게 해야 할 지 몰라서.. 대충 만들었습니다.(별 이상없이 굴러가기는 하구요.)

 

어떻게 했냐면

1. 서버와 통신 후 성공적으로 로그인 하면 특정 값을 받음.

2. MainActivity에 public static boolean으로 isLogin 이라는 변수를 생성하고 로그인에 성공하면 그 값을 true, 로그아웃하거나 로그인 실패 시 false로 설정.

3. 로그인 여부를 알기 위해서 if(MainActivity.isLogin == true) 이렇게 조건을 붙이구요.

 

어째저째 지금까진 문제가 없지만 ㅠㅠ 저 방법이 옳은 것 같지는 않아서요..

여쭤보니까 이런 식으로 하면 된다고 하는데.. 진짜 맞는건지 @_@

 

제일 맘에 걸리는 건 static 변수를 쓴다는 게 그렇게 좋은 방법이 아니라고 들어서요 ㅜㅜ..

 

다른 분들은 어떤 식으로 구현하시는 지 궁금합니다.. 

relz (2,550 포인트) 님이 2015년 1월 6일 질문

2개의 답변

0 추천
 
채택된 답변
server 에서 set cookie 하고 client 에서 cookie 를 받아다가 처리하면 됩니다.

http://stackoverflow.com/questions/3407764/android-example-for-using-a-cookie-from-httppost-for-httpget
aucd29 (218,390 포인트) 님이 2015년 1월 6일 답변
relz님이 2015년 1월 6일 채택됨
서버랑 연결해서 로그인 하는 것 까진 구현했는데요.. '지금 로그인 중이다.' 라는 데이터를 어떻게 앱 안에 저장해야 되는지가 궁금해서요.. 원래 앱에 저장하는 게 아니라 서버에서 현재 상태까지 일일히 받아와야 하는 게 맞나요 ?_?
네 서버에서 로그인시 데이터를 별도로 처리해서 넘겨주면 클라이언트는 해당 정보만 받게 됩니다.

즉 서버 -> 쿠키 발행 -> 클라 (발행된 쿠키 보유) -> 서버에 데이터 요청 -> 서버 (클라에 쿠키를 확인하고 로그인된 데이터 발행)
0 추천
일반적으로 로그인 성공하면, 서버쪽에서 헤더 정보(쿠키)를 클라이언트로 줍니다.

그러면, 클라이언트는 이 정보를 서버에 request 할 때마다 헤더에 넣어 주면, 서버는 이를 확인 후 response 하는데요.

전반적인 맥락은 질문자님께서 말씀하신대로 동작합니다.

 

다만, 보안 안정성을 위해서 일반적인 서버는 이 헤더정보(쿠키)를 hash값 정도로 생성하고, time out을 지정해서 사용하고 있어욤. 근데 뭐 일단 돌아가면.. 게다가 앱으로 접속이니 사용하시는데 큰 문제는 없지 않나 싶습니다~
@didtmdtwt (1,410 포인트) 님이 2015년 1월 6일 답변
쉬운 설명 감사합니다 :) 지금 하는 것도 큰 문제는 없지만 원래는 저렇게 하는 게 정석이다.. 라는 말씀이시죠? ㅠㅠㅋㅋ 두 분 다 답변해주셔서 감사합니당!
...