2012-03-17 4 views
1

나는 다른 웹 사이트 (B)의 "프론트 엔드"역할을하는 웹 앱 (A)을 개발 중이다. 기본 HTTP 인증 (즉, 팝업과 사용자 이름 및 비밀번호 요청) .자바 스크립트, jquery 또는 django에서 HTTP 기본 인증?

내 웹 응용 프로그램에서 각 사용자는 이미 A에 대한 자신의 계정의 일부로 저장된 B의 사용자 이름과 암호를 가지고 있습니다. 그러나 사용자가 처음 A에서 B의 자원에 액세스하려고 시도하면 사용자 이름과 비밀번호 (하지만 나머지 세션에서는 더 이상 필요 없습니다). 내가 사용자 이 결코에 자신의 자격 증명을 명시 적으로 입력해야하므로 (사용자 계정에 이미 저장되어 있기 때문에) 필요합니다.

javascript/jquery 또는 일부 장고 코드를 사용하면 예를 들어 A에 로그인 할 때와 같이 장면 뒤에서이 사용자를 선제 적으로 인증 할 수 있습니까? 따라서 사용자 이름과 비밀번호로 B의 일부 리소스에 요청을 보내는 간단한 문제 여야합니다.

감사합니다.이 질문에 대한 답변을 드리겠습니다.

+0

완전히 다른 도메인에 A와 B가 있습니까? – jpic

답변

2

나는 당신이 그 URL을 똑바로 붙일 수 있다고 믿습니다.

http://user:[email protected]/dir/file.ext

+0

누구나 암호를 볼 수 있도록 하시겠습니까? –

+0

@Secator ... 기본 HTTP 인증입니다. HTTP는 일반 텍스트 프로토콜이므로 누구나 사용자의 암호를 볼 수 있습니다. 사실, 당신의 브라우저는 이미 당신에게 말하지 않고 그것을 수행합니다. 최적으로, 이것은 SSL로 수행되어야하지만, 그것은 당면 문제가 아닙니다. 문제는 인증하는 방법이었습니다. 이렇게하는 것이 가장 빠른 방법입니다. – FrankieTheKneeMan

2

간단히 대답하면 B 백엔드와 관련된 공통 인증/보안 토큰 공유 등의 메커니즘을 도입하지 않으면이 작업을 수행 할 수 없다는 것입니다.

B 아마 다른 근원이기 때문에, Same Origin Policy는 A.

당신이 B 백엔드를 변경 할 수 있다면에서 게재 된 페이지에서 B 요청을 만드는 것을 방지 할 것입니다, 당신은 할 수 있습니다 사용자가 A에 로그인 할 때 A의 페이지에서 B로 JSONP 요청 (HTTP 헤더를 통한 기본 인증이 아님).

다른 솔루션에 대한 영감을 얻으려면 http://en.wikipedia.org/wiki/Single_sign-on을 참조하십시오.

3

jQuery를 아약스() 메소드 옵션 "사용자 이름"과 "암호"와 HTTP 인증을 지원합니다.

jQuery.ajax() manual

:

서버가 응답을 제공하기 전에 HTTP 인증을 수행하는 경우는, 사용자 이름과 암호 쌍은 사용자 이름과 암호 옵션을 통해 전송 될 수있다.

B. VB :

그냥 내가 테스트하지 않은 사용자 이름과 암호

와 B의 일부 리소스에 대한 요청을 전송하는 간단한 문제이어야한다, 그러나 그것은 시험할만한 가치가있다. 아마도 서버가 클라이언트를 인증 한 후에는 자격 증명을 다시 요구하지 않아야하므로 시도할만한 가치가 있습니다.

+0

그래도 다른 출처의 다른 웹 사이트에 XHR 요청을하는 방법은 무엇입니까? http://en.wikipedia.org/wiki/Same_origin_policy –