2013-09-04 2 views
0

나는 클라이언트의 웹 사이트를위한 django에서 도구를 만들고있다.사용자 인증?

내가 만들고있는 도구는 사용자가 기존 계정에 로그인해야합니다.

사용자 인증은 다른 공급 업체의 서버에있는 레거시 소프트웨어에서 처리됩니다.

레거시 소프트웨어를 작성한 프로그래머 (개발 환경을 잘 모르겠다)에게 문의 할 수는 있지만 무엇을 요청해야할지 모르겠습니다. 원하는 후크, API, RPC 등을 원하십니까?

이러한 유형의 상황에 맞는 디자인 패턴이 있습니까? 그리고 django의 기능을 가능한 한 간단하게 사용하거나 확장해야하는 이유는 무엇입니까? REMOTE_USER옳은 것 같이이라고 들리지만이 경우 어떻게 사용할지 모르겠습니다.

답변

0

jquery 요청을 사용하는 것이 좋습니다. 원격 사이트에 사용자 이름과 암호 (물론 암호화되어 있음)를 보내고 쿠키/세션 키를 얻을 수 있습니다.

데이터베이스에 액세스 할 수 있으면이 작업을 수행하는 것이 좋습니다. 예를 들어, 원격 호스트가 MySQL을 사용하는 경우, 사용자에 대한보기를 작성하도록 요청한 다음 직접 인증 할 수 있습니다. 그러나이 방법을 사용하면 settings.py 외부에 MySQL 연결을 설정해야 할 수 있습니다.

+0

다른 프로젝트가 반드시 장고에서 수행되는 것은 아닙니다. 그래서 당신의 MySQL 솔루션이 가능하지 않을까 걱정됩니다. – sachitad

+0

오른쪽. MySQL은 언어에 독립적이므로 다른 사람이 사람에게 알려진 가장 이상한 API를 사용하고 있어도 여전히 서버를 쿼리 할 수 ​​있습니다. 귀하의 컴퓨터에서 파이썬을 사용하여 다른 컴퓨터에 데이터베이스 핸들을 가져옵니다. 그런 다음 요청을 보내고 보낼 수 있습니다. –

0

두 가지 접근 방법 :

1) API : 그들은 자신의 API를 공개 한 경우, 그것은 훨씬 더 간단 할 것이다, 당신은 자신의 API를 사용하여 사용자를 인증합니다.

2) 데이터베이스 노출 : API가없는 경우 들어가서 인증 할 수 있도록 데이터베이스에 대한 액세스 권한을 제공해야합니다. 그러나 이것을 염두에 두면서 Django authenticate()은 작동하지 않을 것입니다. 기본적으로 authenticate 메쏘드는 다시 auth_user 테이블을 인증하기 때문입니다. 물론 직접 논리를 사용하여 수동으로 인증 할 수도 있지만 문제가 될 수도 있습니다. 세션과 자료를 직접 만들어야합니다. 따라서 장고에서는 custom user models (Django 1.5에서만 사용 가능)을 사용하는 것이 좋습니다.

다른 사람이 이보다 더 좋은 해결책이있을 것이라고 확신합니다.