Можно ли избежать создания таблицы auth.model.User Django при использовании «других источников аутентификации»? - PullRequest
2 голосов
/ 13 декабря 2011

Как сказано в документации Django о Других источниках аутентификации , для аутентификации на другом источнике вы должны реализовать свой собственный аутентификационный бэкэнд .Они также объясняют, что:

Система администрирования Django тесно связана с объектом User Django, описанным в начале этого документа.На данный момент лучший способ справиться с этим - создать объект Django User для каждого пользователя, который существует для вашего бэкэнда (например, в вашем каталоге LDAP, вашей внешней базе данных SQL и т. Д.)

Поскольку я не собираюсь использовать систему администратора (я предполагаю, что они ссылаются на приложение администратора) Могу ли я избежать репликации этой таблицы?

Я думал о реализации authenticate и get_user методы , как документ говорит , но это подразумевает создание экземпляра класса User , поэтому следующий вопрос будет: можно создать экземпляр класса auth.models.User без фактической таблицы пользователей Django?

Ответы [ 5 ]

1 голос
/ 13 декабря 2011

Краткий ответ на ваш вопрос - да, может.Просто установите для свойства managed значение False для модели User.

1 голос
/ 13 декабря 2011

Удалить django.contrib.auth из настройки INSTALLED_APPS.

1 голос
/ 13 декабря 2011

Вы должны сопоставить пользователя из внешней аутентификации с объектом auth.User.

0 голосов
/ 13 декабря 2011

Нет способа избежать таблицы и все равно иметь какую-либо аутентификацию. «Альтернативные» методы аутентификации по-прежнему используют таблицу auth_user, они просто аутентифицируются с помощью другого средства.

0 голосов
/ 13 декабря 2011

Есть ли особая причина, по которой вы не хотите, чтобы таблица создавалась? Если вы напишите (или используете уже существующий) бэкэнд аутентификации LDAP , объекты User будут сохранены в таблице, но в них не будет храниться информация о пароле, и вы сможете легко обновить поля, такие как электронная почта. адрес и имя во время процесса аутентификации, поэтому вы не создадите разъединение между информацией, хранящейся в LDAP и управляемой в таблице Django (т. е. вы можете продолжать обновлять информацию аутентификации из LDAP, и вам не придется беспокоиться о также обновляя его в БД Django).

...