간단하게 사용하고 본질적으로 RESTful 인 웹 프레임 워크 인 Recess을 사용하여 간단한 웹 서비스를 개발하려고합니다. Recess에서 CRUD 기능을 사용하는 것이 매우 쉽다는 것을 알게되었습니다. MySQL 데이터베이스에 백엔드가있는 모델을 만들었으며 이미 REST API를 사용할 수있는 것으로 나타났습니다.RESTful API에서 사용자 인증은 어떻게 수행됩니까?
대단한데, 문제는 사용자 인증이 없다는 것이고, 위에서 설명한 정말 멋진 기능을 거의 쓸모 없게 만듭니다. 실제 응용 프로그램에서 사용자 별 자원에 액세스하려면 인증이 필요합니다. 예를 들어, 간단한 "할 일"응용 프로그램을 개발하고 있다고 가정 해 봅시다. 사용자는 다른 사람이 할 일 목록에 무엇을 넣을지에 관심이 없기 때문에 서비스는 사용자가 누구인지 식별하여 올바른 데이터를 제공해야합니다. 또한 사용자는 다른 사람의 자원을 읽거나 삭제하거나 업데이트 할 수 없어야합니다.
이것은 로그인 시스템에서 정상적으로 수행됩니다. 그러나 REST API의 경우 사용자는 어떻게 인증됩니까? 요청이있을 때마다 클라이언트가 사용자의 자격 증명 (예 : 사용자 이름 및 암호)을 제공해야합니까? 어떻게 피할 수 있습니까? 일반적으로 쿠키를 사용할 수는 있지만 모든 클라이언트가 반드시 웹 브라우저가 아니기 때문에 이는 바람직하지 않습니다. 그러나 쿠키의 기능을 에뮬레이션하려면 "쿠키"콘텐츠를 어떻게 전송해야합니까? (일반적으로 HTTP 헤더에서이 작업이 수행됩니다)? 마지막으로 Recess의 내장 REST 기능에서 이러한 문제에 대한 해결책을 어떻게 통합 할 수 있습니까?
알다시피, 저는 REST API를 처음 개발 한 것이므로 어떤 제안이나 조언도 환영 할 것입니다.
소리가 계획과 비슷합니다. 하지만 RESTful 백엔드에 액세스 할 수있는 자바 웹 애플리케이션을 만드는 경우 어떻게해야할까요? 요청에 사용하기 위해 사용자의 자격 증명을 편리하게 유지하는 것이 바람직하지 않습니까? 페이지가 변경되면 예를 들어 로컬 저장소에 자격 증명을 저장해야합니까? 데스크톱/모바일 앱을 개발할 때 내가 할 수있는 일이 없을 때 더 좋은 방법이 있습니까? – Hassan
평문 암호를 저장/전달하지 않으므로 소금물을 해싱하고 자격 증명을 해시 할 수 있습니다. SHA-256과 같은 것을 사용하면 좋은 모양이 될 것입니다. –