2011-12-04 3 views
1

내 목표는 iOS 5 네이티브 JSON을 통해 ActiveResource JSON 및 iPhone 응용 프로그램을 통해 Rails 3 웹 응용 프로그램과 통신하는 독립형 RESTful Rails 3 서비스를 빌드하는 것입니다. 나는 하나씩 데이터 테이블을 서비스 앱에 공개하고 Rails 앱과 iPhone 앱을 통해 호출하고 렌더링 할 수 있도록 각각 실행하고있다.레일 3 및 iOS 아키텍처 검토

제 질문은 인증 및 웹 응용 프로그램과 iPhone 응용 프로그램 또는 향후 Android 응용 프로그램 모두에서 다시 사용할 수있는 것입니다.

나는이 사이트에서 수행 한 연구에서 HTTP Basic이 둘 다 작동하는 것으로 보이지만 세션이나 쿠키처럼 웹 측에서 사용자를 제대로 로그 아웃 할 수 없으며 브라우저 로그인 양식을 가질 수 있습니다. 다루다. 세션을 사용하면 iOS 측에서 인증 설정을 어떻게 진행할 수 있습니까?

이 프로젝트는 운동을 학습 코드, 그래서 단순히 당신이 적어도 두 가지 문제를 가미하여있는 것 같습니다 등을 고안 또는 Authlogic,

답변

1

을 구현하기보다는 구현 또는 건축 지침을 기대하고있다.

첫 번째 문제는 인증입니다. 사용자의 신원을 확인해야합니다. 인증을 위해 기본 인증을 수행 할 수 있습니다. 아마 당신이 찾고있는 것이 아니지만 클라이언트 인증서를 사용할 수도 있습니다.

두 번째로 세션 관리가 있습니다. 첫째, 각 페이지 요청에 대한 기본 인증을 수행하고 세션 상태를 데이터베이스에 저장할 수 있지만 브라우저를 등록하면 사용자를 로그 아웃 할 수 없다는 것이 옳습니다. 자격 증명을 캐시하십시오.

기본 인증이 필요한 로그인 페이지를 고려하고 세션 관리를 위해 쿠키를 다시 찍을 수 있습니다. 다른 모든 페이지는 기본 인증을 요구하지 않지만 쿠키가없는 경우 401을 허가하지 않습니다. 또는 리디렉션 할 수 있습니다. iOS 클라이언트 코드는 로그인 페이지를 먼저 호출하여 쿠키를 얻은 다음 그 쿠키를 사용해야합니다. 로그 아웃하면 쿠키가 삭제되지만 브라우저는 여전히 기본 인증 정보를 캐시합니다.

나는 당신이 원하는 것을 얻으려고하는 유일한 방법은 웹 사용자가 로그 아웃하고 다른 사람으로 로그인 할 수 있도록 양식 기반 인증을받는 것이고 기본 iOS 사용자를위한 자동 기반 시스템. 두 인증 메커니즘의 결과로 다른 모든 페이지에 사용해야하는 쿠키를 반환하십시오.

+0

감사 Xaxxon. "기본 인증이 필요한 로그인 페이지를 고려하고 싶을 수도 있습니다."라고 말하면 HTTP 기본을 수행 할 때 기본 제공 브라우저 로그인 양식을 사용 하시겠습니까? 아니면 사용자 정의 로그인 양식을 만드는 방법이 있습니까? 헤더가 브라우저 로그인 양식을 보지 못하게합니까? – textbox

+0

티켓을 얻는 두 가지 방법이 있습니다. iOS 클라이언트의 기본 인증을 사용하여 세션 쿠키를 얻는 방법과 기존 웹 사용자가 세션 쿠키를 가져 오는 데 사용할 양식 인증을 사용하는 다른 방법이 있습니다. – xaxxon