2013-03-14 1 views
2

내 웹 앱용 REST API를 만들고 있는데 상태가 없어야하므로 HTTP 기본 인증을 사용하여 사용자의 자격 증명을 보내야합니다.REST + HTTP Basic Auth - 요청마다 사용자 조회를 수행하는 데 필요합니까?

모든 요청에 ​​대해 사용자 데이터베이스에서 조회와 함께 사용자 이름/암호의 유효성을 검사해야합니다. 이것은 불필요한 많은 요청처럼 보입니다. 일단 유효성을 검사 할 수 있으며 "상태없는 규칙"을 위반하면 세션에서 계속 유지할 수 있습니다.

+0

귀하의 서버 측 기술은 어느 것입니까? – rekire

+0

PHP + MySQL 만 있습니다. – user1767586

+0

초당 사용자 수는 얼마나됩니까? – rekire

답변

1

인증에 세션 쿠키를 사용하지 않으면 각 요청의 유효성을 검사해야합니다. 그러나 서버 코드의 어딘가에 자격 증명을 캐시 할 수 있으므로 모든 호출에서 데이터베이스를 쿼리 할 필요가 없습니다.

기본적으로 데이터를 너무 오래 저장하면 안됩니다. 사용자는 자신의 자격 증명을 변경할 수 있습니다. 캐시 미스 매치가 있으면 다른 데이터베이스 조회를 수행해야합니다.

1

대신 자격 증명을 확인하는 사용자 이름/암호의 전역 캐시를 유지할 수 있습니다. 요청은 여전히 ​​상태 비 저장되지만 사용자의 유효성을 검사 할 때마다 데이터베이스 (또는 다른 소스)를 사용하는 것보다 더 나은 성능을 얻을 수 있습니다.

또 다른 옵션은 암호화 된 인증 토큰을 반환하는 Login 메서드를 만드는 것입니다. 그런 다음 다른 모든 방법은이 토큰을 예상하고 암호 대신이를 확인합니다. 이 방법을 사용하면 http 기본뿐만 아니라 다른 인증 메커니즘을 사용할 수도 있습니다.