170 похожих чатов

Почему при регистрации используется функция authenticate, которая переберает в себе всё

бекенды.

Почему бы не вызвать метод authenticate конкретного beackend-а?

24 ответов

28 просмотров

Если так сделано, значит так надо

потому что их может быть несколько

Yaro- Автор вопроса

@id6598477 Nire мне ответил, но для чего их может быть несколько?

Yaro- Автор вопроса

@dmake Тогда, для чего эта функция, я знаю что она перебирает бекенды, в каких целях она применяется

ну это разные вещи. Твоя вьюха отдаёт тебе куку или что там у тебя, токен например. Дальше ты её куда-то в браузере тулишь. Это всё ещё не касается твоим auth бекендов. Они работают, когда ты запрос делаешь

Yaro- Автор вопроса

Мне интересно, практический пример использования authenticate

Ну какой пример? У тебя есть несколько разных вьюх под каждый тип токена. Ты получил какой-нибудь Bearer токен для jwt, отдал его фронту. Тот каждый запрос оборачивает этим токеном. Каждый запрос при попадании в джангу натыкается на твои auth backend и проверяет, всё ли в порядке с твоим токеном

Yaro- Автор вопроса

Так вот к чему и вопрос. Почему нельзя в каждой view использовать конкретный бек на прямую

в какой вьюхе? Ты можешь в принципе, я делал как-то для некоторых вьюх специальные пермишен классы, которые требовали наличия определённого токена в заголовке. А так, какая тебе разница? Тебе ведь нужно знать, что это тот самый пользователь

Бэкенды скорее всего подвязаны на 'django.contrib.auth',

Yaro- Автор вопроса

я тысячу лет не писал на голой джанге, но да. Вообще для DRF ты просто отдаёшь куку, а какая это кука, для какого бэка и куда её вставлять - дело фронта. Не понимаю обсуждения, потерял нить (всё таки, пятница, ещё и Рождество. Кстати всех с Рождеством!)

Yaro- Автор вопроса

Ладно, явно нужна практика Happy Christmas

Всё очень просто с аутентификацией. Есть точка А, которая даёт тебе какую-то куку. Есть точка Б, которая даёт токен. Всё, точкам А и Б не интересно, что ты с ними будешь делать. Дальше, когда ты стучишься к точкам Ю и Я (которые требуют авторизации), ты в заголовок своего запроса вставляешь свою куку, или токен (или что там у тебя). Эти заголовки попадают в твой auth backend. Там джанга смотрит, ты ли это и если ты - пускает дальше. Если нет, говорит пользователь не авторизован

Yaro- Автор вопроса

Я просто видел такую запись user = authenticate(password =, emeil =) И такую user =BackEnd.authenticate() В одно м случае к конкретному беку обращаются на прямую

так а разве не будет работать если не передавать бек в аргументы?

Yaro- Автор вопроса

Должно вернуть None

По идее

Смотря какие аргументы не передавать

Yaro- Автор вопроса

Вообще ничего

Эксепшн будет

Yaro- Автор вопроса

Я так понял, речь о том, если при регистрации пользователь не введет данные, а просто нажмет отправить. По идее его должно перенаправить на ту же пустую форму

Yaro- Автор вопроса

Или надпись, заполните это поле

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта