Нужно ли бэкэндам пользовательской аутентификации Django брать пароль? - PullRequest
2 голосов
/ 06 марта 2009

Вот как мой университет обрабатывает аутентификацию: мы перенаправляем пользователя на веб-сайт, они вводят свои имя пользователя и пароль, затем перенаправляются обратно к нам с именем пользователя и ключом входа, переданными в строке запроса. Когда мы возвращаем пользователя, мы вызываем хранимую процедуру в базе данных университета, которая берет имя пользователя, ключ входа и IP-адрес и сообщает нам, если это допустимо.

У меня настроен бэкэнд пользовательской аутентификации Django для решения всех наших задач. Имеет ли какое-то значение то, могу ли я принять аргумент пароля (поскольку мы на самом деле не принимаем их пароль)? Прямо сейчас я настроил его так, чтобы он принимал ключ входа в систему в качестве аргумента пароля. Было бы хорошо, плохо или ни для меня, чтобы изменить это, чтобы принять это как, скажем, login_key вместо пароля?

1 Ответ

6 голосов
/ 06 марта 2009

Документы Django говорят это:

В любом случае, аутентификацию следует проверять учетные данные, которые он получает, и он должен вернуть объект User, соответствующий эти учетные данные, если учетные данные действительны. Если они не действительны, это должен вернуть None.

«Любой путь» относится к тому, принимает ли метод authenticate () комбинацию имя пользователя / пароль или просто токен. Ваш сценарий находится между этими двумя, поэтому я думаю, что «лучшим» ответом было бы написать ваш authenticate (), чтобы взять имя пользователя и ключ входа в систему, и вернуть подходящего пользователя или None в зависимости от ситуации.

...