저는 Android 애플리케이션에서 Rails 웹 서버로 사용자 인증을 가장 잘 구현하는 방법을 연구하는데 많은 시간을 할애하고 있습니다. 필자는 레일스에서 인증을 처리 할 수있는 엔진이 있다는 것을 알고 있지만, 필자가 필요로하는 것은 그리 복잡하지 않기 때문에 스스로 인증 코드를 작성하는 것이 가장 좋습니다.쿠키 또는 RESTful 키에 대한 인증?
저는 RESTful 웹 서비스에 매우 관심이 있습니다. 상태없는 웹 서버에서 코드는 훨씬 더 읽기 쉽고 유지 보수가 쉬우 며 변경 가능하기 때문에 몇 가지 장점이 있습니다. 이 구현에 대해 독립적으로 일하는 대학생으로서, 이러한 것들이 나에게는 매우 중요하지 않지만, 그럼에도 불구하고 REST 가이드 구현은 코딩 관점에서 이상적이라고 생각합니다.
내 응용 프로그램은 자신의 컨텍스트를 유지 관리하는 사용자 계정이 필요하기 때문에 웹 서버에 요청할 때 사용자를 인증해야합니다. 이 애플리케이션을 완전히 RESTful 한 방식으로 구현한다면 어떤 종류의 세션도 유지하지 않고 안드로이드 애플리케이션 (클라이언트 측)이 현재 사용자의 자격증 명 (아마도 유일한 단일 키가 안드로이드 애플리케이션에 리턴 됨)을 전달할 것을 요구한다. 첫 번째 로그인시 웹 서버에서). 이것은 유효한 접근 방법이지만, 서버 측에서 생성 할 수있는 계산상의 오버 헤드가 걱정됩니다.
- 가의 관련 테이블 행에 대한 정수 사용자 ID를 가진보다 느리게 될 것입니다 해당 사용자에 따라 행동하기 위해 모든 요청에 긴 문자열로 사용자를 찾고 : 왜
는 여기 CookieStore 세션.
RESTful 인증을 데이터베이스에 일반 텍스트로 저장하지 않았을 수 있습니다. 아마도 BCrypt를 사용하여 소금과 해시를 키 대신 저장하십시오. 물론 BCrypt를 사용하여 각 요청에서받은 키를 해시하여 데이터베이스에 저장된 해시를 테스트합니다.
프로덕션 서버를 호스팅해야하므로 실제로 짐을 갚을 여유가 없으므로 REST 배지를 사용할 수 있습니다.
일반적인 사용자가 하루에 10-30 건의 요청을하고 사용자 수가 앱의 인기도에 따라 다르다고 가정하면 (예측할 수는 없지만이 질문을 위해 평균이라고 가정) 내 특정 경우에 RESTfully 인증을 구현하는 것이 가능합니까? 즉, 서버의 하드웨어 요구 사항을 상당히 증가시킬 수있는 계산상의 오버 헤드가 있습니까?
감사합니다.