하이킹 클럽 웹 사이트 용 Android 앱 빌드와 관련된 새 프로젝트가 있습니다. 웹 사이트는 사용자가 하이킹을 검색하고, 하이킹을 구독하고, 다른 가입자를보고, 주최자에게 연락 할 수있는 로그인 기능을 가지고 있습니다. 원래 사이트는 프런트 엔드가 .asp 페이지 인 MySQL 데이터베이스를 기반으로합니다. 대부분의 데이터는 쿼리 문자열에서 GET 매개 변수로 페이지를 통과합니다.Android 앱으로 기존 웹 애플리케이션 확장
Android 개발에 대한 새로운 내용으로, 몇 가지 자습서를 읽은 후에도 일부가 실제로 나를 혼란스럽게합니다. 나는 REST 웹 서비스에 대한 아키텍처 보스 (baes)를 생각하고 있지만, 극복해야 할 몇 가지 장애물이있다.
외에도 REST를 사용, 다른 옵션을 사용할 수 있습니다
전화 대신 전용 웹 서비스를 구축하는 응용 프로그램에서 원래 .ASP 페이지를 참조하십시오. 이로 인해 작성해야 할 코드가 훨씬 줄어들고, 로그인 시스템뿐 아니라 원래 비즈니스 로직 (쿼리 e.a.)을 사용할 수 있습니다 (쿠키를 기반으로 한 "remember me"기능 포함). 단점은 응답 코드의 대다수가 쓸데없는 밸러스트 코드 인 앱 GUI에 표시하려면 응답의 (X) HTML 코드를 파싱해야한다는 것입니다. 또한, archtitectorial 관점에서 아주 좋게 느껴지지 않습니다.
SOAP 기반 웹 서비스 사용. 나는 SOAP에 전혀 익숙하지 않으며 모바일 장치의 경우 너무 무겁다.
REST 서비스 사용. 나는이 옵션에 기대고 있으며, SLIM 프레임 워크를 사용하여 이미 작동중인 서비스를 으로 만들었습니다. 그러나 거기에 몇 가지 문제가 있습니다. 첫째, REST는 정의상 무 상태이므로 은 세션을 지원하지 않는 것 같습니다. 처음 로그인 한 후 "내 계정 정보 기억"옵션을 사용하면 사용자가 명시 적으로 로그 아웃하지 않는 한 다시 로그인 할 필요가 없습니다. 은 앱에 처음으로 로그인 한 후 으로 로그인해야합니다.
하지만 어떻게 할 수 있습니까?
첫 번째 옵션은 사용자가 로그 아웃 할 때까지 자격 증명을 로컬에 저장하는 일부 완전 클라이언트 사이트 로그인/로그 아웃 시스템을 설계하는 것입니다. 그리고 각 요청에 대한 자격 증명을 POST 매개 변수로 웹 서비스에 전송하거나 HTTP 인증 요청 헤더에 어떻게 든 전달합니다. 익숙하지는 않지만 말입니다.
두 번째 옵션은 RESt 원칙과 약간 어긋나고 어쨌든 세션 메커니즘을 사용하는 것입니다. 자격 증명을 웹 서비스에 전송하면 쿠키가 만들어져 클라이언트 응용 프로그램으로 전송됩니다. dartabase를 확장 할 수 없으므로 사용자 테이블에 토큰을 저장하는 옵션이 없습니다. 어쩌면 사용자/비밀번호를 암호화하여 앱으로 쿠키로 보내고 이후의 요청마다 해독 할 수 있습니까?
나는 이것에서 조금 길어졌으며, 진지한 제안을 기대합니다!
감사합니다.이 전략을 따를 계획입니다. 각 사용자 별 요청과 함께 사용자 이름/암호 자격 증명을 데이터 가져 오기 작업의 GET 매개 변수로 전달하여 웹 서비스를 확장했습니다. 매우 안전하지는 않지만 지금은 작동합니다. 따라서 대부분의 비즈니스 규칙은 .asp 페이지 뒤에 숨겨져 있기 때문에 다시 작성해야하는 문제가 있습니다. 그 비즈니스 규칙이 하나의 공통된 장소에 배치 될 수 있으면 좋겠지 만, 기존 웹 애플리케이션은이 경우에 다시 작성되어야한다고 생각합니다 ... – klausch
오래된 스레드이지만 제안 된 방법으로이 문제를 해결 했습니까? 비슷한 일을하고 있지만 ASP 세션을 지속하기 위해 Google의 Volley와 어려움을 겪고 있습니다. – Jammo