Форум сайта python.su
Добрый день, сразу скажу, что я абсолютной новичок в данной теме, но мне очень нужна помощь. Нужен пример сайта с простейшей авторизацией через middleware и реализованным в нем словарем сессий. Пользователем вводится логин и пароль, он сравнивается с значениями в словаре. типа {'id сессии':{параметры сессии}} ( которые заранее вбиты, к примеру Админ и юзер), если логин и пароль подходят то просто выдается сообщение об успешной авторизации, иначе выдает сообщение о неправильном вводе.
Отредактировано lithon_bcf (Март 21, 2019 11:09:00)
Офлайн
Если пользователь где то вводит логин и пароль - это views ака вьюшки. middleware для этого не предназначены.
Офлайн
VadimKДа ладно! Пользователь же не на каждый реквест вводит логин и пароль. Какой-то код должен вытащить кукисы из запроса, получить сессию, создать пользователя. Именно middleware этим и занимается. А если у вас JWT? А если юзер логинится через LDAP? lithon_bcf вероятно путает авторизацию с аутентификацией, прочем, и то и другое вполне себе реализуется через middleware.
middleware для этого не предназначены
Офлайн
FishHook
FishHookЗдравствуйте, а можете небольшой пример предоставить, просто я никак не могу понять как это реализовать.
Офлайн
lithon_bcf
Вы сейчас просите готовый фреймворк вам дать причем на основе ровно двух строк якобы технического задания? Да это бред. Смотрите в код Django, Flask, Pyramid - там реализовано ровно то, что вы хотите. А набросать для вас веб-сервер с нуля забесплатно, а зачем это кому то надо? Это работа и она требует усилий.
Офлайн
FishHookВот именно, вводит логин и пароль, а не передает его через GET на произвольную страницу или уже тем более не POST методом на какую либо картинку или файл.
Да ладно! Пользователь же не на каждый реквест вводит логин и пароль
Офлайн
VadimKЧто вы не видели в джанге? Вы не видели django.contrib.auth.middleware.AuthenticationMiddleware? Или django.contrib.sessions.middleware.SessionMiddleware?
Кстати в той же джанге ничего подобного к примеру я не видел.
Отредактировано FishHook (Март 26, 2019 05:00:20)
Офлайн
Это относится с уже ранее залогиненым юзерам, кому созданна сессия. А для нового юзера сессия из неоткуда не возьмется, кроме как пройти процесс авторизации. Либо через remote_user указать, что это юзер из другой системы. Но и в данном случае, авторизация происходит , но только где то в другом месте. а не на текущем сайте.
В общем авторизация юзера или идентификация - разные вещи. В начальном посте ясно сказано - вводятся логин и пароль.
Офлайн
можно взять aiohttp - там легко оч легко делается middleware, легче чем в джанге (за фласк не скажу, не делал).
Но в целом я думаю что автор типичный студент, который ничего не знает, а задание делать надо…поэтому его стартовый топик действительно правильно бы переписать не “нужен пример”, а “нужно полностью готовый маленький проект” прям что бы в таком виде передать требуемой стороне. Посему нужны не советы, а взять и сделать. Кто нибудь на это подпишется? Пока что желающих не видно.
Офлайн
VadimK
Джаляб! Надоело. Ерунду какую-то перетираем.
Во-первых,
VadimKпотрясающая мысль!
В общем авторизация юзера или идентификация - разные вещи.
VadimKТо что ты называешь авторизацией, это аутентификация.
А для нового юзера сессия из неоткуда не возьмется, кроме как пройти процесс авторизации.
VadimKА для чего же они предназначены? middleware - это промежуточный слой логики, код между двумя крупными частями системы, между клиентом и сервером, между сервером и СУБД, между сервером и кешем, между моделью и контроллером и т.д. Он может делать всё что угодно в твоей архитектуре, вот буквально всё, что ты решишь в этот слой вынести.
middleware для этого не предназначены
VadimKЭ? А что я должен ТСу объяснять? Он не задал ни одного вопроса.
Или как ТСа отбреете “не барское это дело объяснять”
Офлайн