Как я могу выполнить пользовательский вход с номером социального страхования и пропуском, а не с именем пользователя или электронной почтой?

#django #django-authentication

#django #django-аутентификация

Вопрос:

Всем привет,

Использование django 1.3 на python 2.6.5

У меня проблема с поиском какой-либо помощи по этому поводу, у меня есть сайт, который просто должен (по требованию клиента) аутентифицировать логин пользователя по номеру безопасности socail или номеру паспорта, а не по обычным полям.

Я просто ничего не могу найти по этому поводу…почему большинство руководств не содержат никакой аутентификации или начинаются с предположения, что система аутентификации уже существует…

Может кто-нибудь, пожалуйста, объяснить мне, как мне выполнить пользовательскую аутентификацию, если бы вы могли, пожалуйста, показать пример или сослаться на страницу, я бы поблагодарил вас миллион раз .. 🙂

10x за всю помощь, которую я получаю здесь, вы, ребята, великолепны 🙂

Комментарии:

1. Хорошо, 10x Джон, мэйби, я буду более согласен с этим… Я думал об этом, и поскольку я всего лишь разработчик сайта, я ничего не могу с этим поделать, но я думаю так же, как и вы…. Но вы знаете, в конечном итоге, я делаю то, о чем меня просят, я не нарушаю закон, делая that….so посмотрим, что произойдет 🙂

2. Джон, еще раз спасибо, мне удалось убедить клиента отказаться от него и использовать электронную почту пароль, сказав: «Программист-ветеран, с которым я разговаривал, сказал мне, что это очень плохая идея», действительно помогло, потому что он полагался на своего «технического» друга, который сказал ему, что это лучший способ, и когда я начал показывать ему другие мнения, это стало неуместным, и он начал слушать меня…. Клиенты … не могут жить с ними, не могут платить за аренду без них … ЛОЛ

Ответ №1:

В документации django есть целая тема о пользовательской аутентификации

Серверная часть аутентификации — это класс, который реализует два метода: get_user (идентификатор пользователя) и authenticate (учетные данные **).

Комментарии:

1. Привет и 10x, я прочитал это, но как мне интегрировать в это пользовательский профиль, в нем говорится только о пользовательских полях (как и в любом другом руководстве), мне нужны пользовательские поля пользовательского профиля, или я не понял статью, и get_it сделает свое дело? просто пока не могу его получить…

2. Если вы используете AUTH_PROFILE_MODULE, вы можете использовать user.get_profile().ssn для доступа к значению ssn. (Я предполагаю, что вы сохраняете ssn в профиле пользователя).

3. Я знаю, что вы все отчаянно пытаетесь помочь, но все, что до сих пор остается для меня очевидным, извините, чего я не могу понять, так это как мне выполнить аутентификацию с помощью файла, загруженного из модуля UserProfile …. если вы посмотрите документ, они всегда делают это с полями, которые являются аутентификацией. Пользовательский режим ….. вот чего я не понимаю …. 10x

4. Вы можете расширить модель пользователя с помощью других полей или с помощью пользовательского профиля пользователя.

5. У меня уже есть это … все настроено, ребята … у меня есть профиль пользователя, я читал документы, я знаю, как выполнить аутентификацию обычным способом, просто нужно знать, как это сделать (от кого-то, кто действительно делал это раньше) с полями, которые не являются именем пользователя или электронной почтой ….) все остальное я знаю, 10x за помощь 🙂

Ответ №2:

Вы просто перезаписываете аутентификацию django и пишете свою собственную:

http://docs.djangoproject.com/en/dev/topics/auth/#handling-authorization-in-custom-backends