2011-06-15 5 views
1

Google에 등록한 고객이 사용할 수있는 웹 서비스가 있습니다. 등록하는 동안 사용자 이름, 암호 및 클라이언트의 IP/도메인을 가져옵니다. 이 웹 서비스는 등록 된 클라이언트가 자신의 응용 프로그램에서 사용할 수 있습니다. AJAX 요청을 사용하여 브라우저를 통해 webservice 호출이 이루어진 경우 클라이언트를 인증하는 방법은 무엇입니까? 현재 getReferrer를 사용하여 인증하고 있습니다 (클라이언트 도메인을 제공함). 이 인증을 처리하는 더 좋은 방법이 있는지 알고 싶습니다.클라이언트 브라우저에서 AJAX 요청 인증/승인

감사합니다.

덕분에 다음 단계가 필요합니다 웹 서비스를 확보하기 아닐 K

답변

1

한 가지 방법 :

  • 등록 된 클라이언트가 "API 키"를 요청할 수있는 곳에서 당신의 웹 사이트에 기능을 추가합니다. 이 "키"는 고유 한 임의 문자열 (고정 길이 문자열이 바람직 함)입니다.
  • 클라이언트가 수행 한 첫 번째 웹 서비스 호출은 인증 호출이어야합니다. 이 호출에서 클라이언트는 HTTP 헤더 값으로 "API 키"를 전달해야합니다. 서버 측에서는 들어오는 IP/도메인과 "API 키"가 등록 된 클라이언트에 있는지 여부를 확인해야합니다. 이렇게하면 클라이언트는 인증을 위해 "사용자 이름/암호"를 전송할 필요가 없습니다.
  • 키와 IP/도메인이 일치하면이 웹 서비스 호출이 유효한 클라이언트에서 온 것으로 간주 할 수 있습니다. 이제 서버 쪽에서 "토큰"(고유 한 임의 문자열)을 생성하고 "토큰"을 인증 웹 서비스 호출에 대한 "응답"으로 클라이언트에 보냅니다.
  • 이 "토큰"은 이후의 각 웹 서비스 호출에서 클라이언트가 전송해야합니다. 유효한 "토큰"인지 확인해야합니다. 특정 기간 후에 "토큰"이 만기되어야합니다. 예를 들어, "토큰"이 지난 15 분 동안 사용되지 않은 경우 "토큰"이 만료되어야하며 웹 서비스 클라이언트는 인증 API를 다시 호출해야합니다. 이 도움이

희망,

+0

안녕하세요 아지즈, 당신의 응답을 감사합니다. 클라이언트가 웹 서비스에 액세스 할 때마다 토큰을 인증하거나 전송합니다. 호출이 클라이언트에 의해 수행되고 있지 않습니다. 이 호출은 클라이언트의 응용 프로그램 사용자가 AJAX 호출을 통해 사용자의 브라우저에서 호출합니다. 매번 토큰을 보내도록 클라이언트에 요청하지 않고 브라우저에서 호출을 인증하는 방법이 있습니까? 감사합니다. Anil –

+0

귀하를 올바르게 이해했다면 귀하의 고객은 등록되었지만 귀하의 고객 (사용자)은 귀하에게 직접 등록하지 않았습니까? –

+0

안녕하세요 Aziz. 네, 맞습니다. 제안 사항이 있으십니까? 감사합니다. –