이 응용 프로그램에서 로그인 로그 아웃 android 응용 프로그램을 만들고 있는데 서버와 상호 작용하며 DefaultHttpClient 객체가 초기화 될 때 사용자의 로그인과 함께 DefaultHttpClient는 해당 사용자와 연결되어 있으며 응용 프로그램이 초기화 될 때까지 서버에서 세션이 실행 중입니다. 하지만 응용 프로그램을 파괴하자마자 새 DefaultHttpClient 객체가 초기화되므로 이전 로그인과 연결되어 있지 않지만 아직 로그 아웃하지 않았기 때문에 서버의 세션이 계속 실행 중입니다. 앱이 삭제 된 경우에도 내 로그인 세션을 계속 실행하는 방법을 알려주세요.서비스에서 객체가 초기화 된 경우 서비스가 백그라운드에서 실행 중일 때 초기화 상태로 유지됩니까?
0
A
답변
1
정말 좋은 점.
먼저 세션 사용을 취소합니다. 세션은 특정 시간 동안 유효하며 서버에 의해 설정된 서버에서 작성됩니다.
그래서 세션이 만료 된 응용 프로그램을 나가는 것이 아닙니다. 세션 시간이 끝나면 실행중인 응용 프로그램에서도 작동하지 않습니다.
이 문제를 극복하려면 앱에 자동 로그인 기능을 구현해야합니다.
예를 들어 웹 서비스를 호출하고 일부 코드와 함께 응답을 반환합니다.
response : {"code" : "200","message" : "log-in successfully"}
.
그러나 세션이 어떤 경우에 만료 될 때 서버가 대신 200
response : {"code" : "704","message" : "session expire"}.
그래서 당신은 당신의 응답 코드를 검사 할 필요가 일부 특정 코드를 반환해야하고 다시 통화 로그 - 인 서비스 (704) 인 경우 백그라운드에서 새 세션을 시작하십시오.
사용자가 입력 한 sharedpreference에 로그인 서비스 매개 변수를 저장해야합니다.
로그인 한 앱의 좋은 아이디어라고 생각하지 않습니다. SharedPreferences를 사용하여 자격 증명을 저장하고 REST 요청을 수행하는 것이 좋습니다. 그러나 그것은 나의 오피오온입니다. – Leonardo
그래, SharedPreferences를 사용했지만 세션이 중지 된 경우에도이 작업을 수행했습니다. –
세션이 중지되면 세션 만료 오류를 확인하고 연결을 다시 시도하고 자격 증명을 다시 시도해야합니다. 그 문제에 대해서는 Oauth 2.0을 사용하는 것이 좋습니다. – Leonardo