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

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

бекенды.

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

24 ответов

31 просмотр

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

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

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- Автор вопроса

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта