2013-04-11 3 views
2

Android 앱 인증 후 사용자를 로그인 상태로 유지하려면 어떻게해야합니까? 나는 약간의 독서를했고, 솔직히 세션에 대해 약간 경험이 없지만, 사용자가 서버에 자신의 자격 증명을 제출하고 인증 된 것처럼 보이면 서버는 세션 ID를 다시 보냅니다. 내가 생각하는이 세션 ID는 사용자의 Android 기기에 저장됩니다.Android 인증 및 세션

세션 ID를 저장하려면 sharedPreferences, sqlite db 또는 로컬 저장소를 사용해야합니까? 나는 sqlite db 또는 로컬 저장소가 단일 응용 프로그램에만 제한되는 반면 공유 환경 설정은 다소 안전하지 않다고 읽었습니다.

또한이 정보를 보내거나 받기 위해 서버에 HTTP 요청을해야합니까? 아니면 소켓 연결을 통해 할 수 있습니까? 궁극적으로는 소켓을 사용하는 멀티 플레이어 게임을 만들고 싶습니다. 로그인과 같은 특정 기능은 반드시 소켓을 통과해야하는 것은 아니지만 게임 개발자가 일반적으로하는 표준 또는 일반적인 방법이 있는지 확실하지 않습니다.

답변

0

나는/보낼 수있는 서버에 HTTP 요청이 내가 그냥 HTTP를 통해 사용자 인증을 보낼 생각하지 않습니다이 정보

를받을 수 있도록해야한다. 잠재적으로 사람들은 패키지를 가로 채고 일반 텍스트로 데이터를 읽을 수 있습니다. Android 애플리케이션이 인증하는 서버에 API가있는 경우 HTTPS를 사용하여 통신하는 것이 좋습니다.

세션 ID를 저장하려면 sharedPreferences, sqlite db 또는 로컬 저장소를 사용해야합니까?

나 자신이 'MODE_PRIVATE'에서 sharedPreferences를 사용하여 ID를 저장합니다. sharedPreferences 파일을 만들 수있는 다양한 모드가 있습니다. 개인 모드는 동일한 사용자 ID로 응용 프로그램이나 응용 프로그램에서만 액세스 할 수 있음을 의미합니다. 모든 모드는 여기에 설명되어 있습니다 :

http://developer.android.com/reference/android/content/Context.html#getSharedPreferences%28java.lang.String,%20int%29

당신은 내가 데이터베이스를 사용하는 것이 좋습니다 것이 당신의 안드로이드 장치에 암호 및 사용자를 저장합니다. 당신은 '소금과 후추'와 암호를 반드시 확보합니다

http://barkingiguana.com/2009/08/03/securing-passwords-with-salt-pepper-and-rainbows/

가 당신을 도울 수있는 게임 개발자는 일반적으로 할 표준 또는 일반적인 방법이 있다면

확실하지 이 질문으로,하지만 당신이 그것을 연구 할 수 있다면 당신은 그것을 알아낼 수있을 것이라고 생각합니다.).

+0

도움을 주셔서 감사합니다. HTTPS는 그것이 암호화되어 있다는 의미가 될 것입니다. 제 질문은 사용자 로그인 정보를 보내고 소켓 또는 https를 통해 세션 ID로 응답해야합니다. 나는 그것이 안전한 소켓 연결만큼 오래 소켓과 함께 작동 할 것이라고 생각한다. –