2009-09-29 2 views
6

최근에 장고를 배우기 시작했습니다. 나는 관리자와 사용자를위한 두 개의 인증 시스템을 갖는 방법을 찾아 내려하고있다. 완전히 새로운 인증 시스템을 만드는 대신 장고의 내장 기능 (예 : 세션 관리, @login_required 데코레이터 등)을 활용하고 싶습니다.장고에서 별도의 관리자/사용자 인증 시스템

특히 두 개의 별도 로그인 테이블 (사용자는 1 명)이 필요합니다. admin 로그인 테이블은 django가 기본 필드 (즉, id, username, email, is_staff, etc.)로 생성하는 기본 테이블이어야합니다. 반면에 사용자 테이블은 에만 5 필드 - id, email, password, first_name, last_name을 갖고 싶습니다. 또한, 각각의 뷰에 대해 로그인 테이블과 @login_required 데코레이터 모두에 django 기본 제공 세션 관리를 사용하려고합니다. 마지막으로, 나는 관리자와 사용자를 위해 두 가지 별개의 로그인 양식을 원한다.

누구나 내 목표를 달성 할 수있는 방법에 대한 제안이나 나와 함께 할 수있는 기사/예제를 알고 있습니까?

+0

대부분의 작업에 사용 권한이 충분하지 않습니까? 관리자는 적절한 권한을 가진 사용자입니다. 그리고 미세 조정 된 권한을 원하지 않으면'user.is_staff' /'user.is_superuser' 밖에 없습니다. – drdaeman

+0

내 질문에 불분명 한 것 같습니다. 나는 세부 사항과 세부 사항을 추가하여 내 질문을 편집하여 희망 사항을 분명히했다. 통찰력/도움에 감사드립니다. – Dan

답변

1

질문을 올바르게 이해했다면 표준 Django 인증 메커니즘 인 User 모델을 사용하는 동안 관리자가 아닌 사용자를 위해 별도의 로그인 양식을 만드는 방법을 묻는 것 같습니다. 이것은 장고가 기본적으로 django.contrib.auth.views 뷰를 통해 지원됩니다.

django.contrib.auth.views.login부터 시작하려고합니다. 지금처럼 urlconf에 줄을 추가합니다 :

(r'^/login/$', 'django.contrib.auth.views.login', {'template_name': 'myapp/login.html'}) 

login 일반적인보기는 사용자 정의 로그인 템플릿의 경로입니다 template_name 매개 변수를 받아들 (django.contrib.auth에서 제공하는 당신은뿐만 아니라 사용할 수있는 일반적인 하나있다) .

login, logout, password_change 및 기타 일반적인보기에 대한 전체 설명서는 Django Authentication Docs에서 볼 수 있습니다.

0

사용자가 사용자 이름에 카테고리 접두사를 갖도록 작업을 약간 수정 하시겠습니까? 우리가하고 싶은 일에 대해 많은 정보를주지 않았기 때문에 사이트 프레임 워크를 사용하거나 두 번의 별도 django 설치를 사용하여 필요를 채울 수도 있습니다.

사용자 로그인 페이지와 관리자 로그인 페이지를 분리하려는 경우 문서에 설명 된대로 기본 제공 프레임 워크를 사용하여 "사용자"로그인 페이지를 만들고 관리자 만 남겨 두십시오. . 사용자가 어떻게 든 관리자 로그인 정보를 수정하기 시작할 것이라는 걱정이 든다면, 그렇게하지 않으면 그렇게하지 않을 것입니다.

1

잠재적으로 하나 이상의 사용자 지정 인증 백 엔드를 쓸 수 있습니다. 이 문서는 here입니다. 예를 들어, LDAP 서버에 대해 인증하기 위해 사용자 정의 백엔드를 작성했습니다.

관련 문제