2014-06-22 7 views
0

초기로드 후, angularjs/nodejs 어플리케이션은 "ajax"를 사용하여 서버와 통신합니다.nodejs 엔드 포인트를 클라이언트 측 어플리케이션으로 제한

예를 들어 블로그 앱을 가지고 있다면 제목, 본문 등으로 POST이됩니다. 아니면 최근 블로그 게시물의 json 배열을 검색하는 GET 요청을 받게됩니다.

이 서버 측 엔드 포인트는 기본적으로 API이므로 데이터를 수신하고 리턴합니다.

이 끝점에 대한 액세스를 응용 프로그램으로 어떻게 제한 할 수 있습니까? 사용자는 쉽게 URL을 복사하고 서버 측 언어 또는 컬을 사용하여 자유롭게 사용할 수 있습니다.

실제 API가 있지만 사용하려면 API가 있어야합니다.

답변

0

사용자를 인증합니까? 그렇다면 세션 쿠키를 사용하여 리소스에 대한 액세스를 제한 할 수 있습니다. Mean.io은 앵글 앱이 로그인 할 때 각도 앱이 서버 리소스에만 액세스 할 수있는 매우 기본적인 기능을 보여줍니다.

또한 nodejs 프레임 워크를 사용하고 있습니까? (표현, resitfy, 등)

+0

본질적으로, 아니, 사용자가 항상 인증되지 않습니다. 사람들은 로그인하지 않고도 기본적인 기능을 사용할 수 있습니다. 나는 익스프레스, 패스포트, 몽구스 및 소수의 libs 서버 측, angularjs 클라이언트 측을 사용하고 있습니다. – helion3

+0

제가 생각할 수있는 가장 좋은 아이디어는 만료 세션 쿠키를 설정하는 것입니다. 정통한 사용자가 요청에 쿠키 정보를 전달하는 방법을 찾을 수는 있지만, 만료 된 후에는 새로운 쿠키를 얻으려면 GET 요청을 보내야합니다. 또 다른 옵션은 웹 소켓을 통해 데이터를 방출하는 것입니다. 이것은 소켓 연결을 통해 데이터를 보내는 모델을 끌어 오기보다는 푸시 모델로 바꿀 수 있습니다. 연결 해제시 재사용을 위해 새로운 GET 요청을 보내야합니다. 사용자가 웹 응용 프로그램 외부에서 서버 데이터에 액세스하는 것이 왜 문제가되는지에 대해 더 많은 통찰력을 제공 할 수 있습니까? – Yousef

+0

특히 인증되지 않은 사용자. – Yousef

관련 문제