vessels
@vessels
Ни черта не понял, но очень интересно!

Как правильно оформить вход пользователя с кэшированием?

Добрый день, пишу с "маленькой" проблемкой, мне нужно оформить вход юзера на сайт с кэшированием его данных. У меня есть код, в нём я использую Flask-MySQL, Flask-Cache, так же использую модуль Memcached. Вот код, будут идеи как его улучшить?
@submit_blueprint.route('/submit', methods = ['GET', 'POST'])
def submit():
	# с самого начала я смотрю сессию
	if not session.get('admin'):
		#тут я их на всякий случай чищу
    	session.clear()
		#тут создаю соединение с бд, а также создаю курсор
    	cur = db.connect().cursor()
		#проверяю HTTP метод
    	if request.method == 'POST':
			#тут получаю информацию с полей на фронтэнде
      		login = request.form['login']
      		password = request.form['password']
			#выбираю нужные поля из бд и если информация с полей ввода совпадает то получаю ид
      		cur.execute('''SELECT id FROM user WHERE login=%s and password=%s''', (login, password))
			#тут я химичил с минималистичностью кода
      		get = cur.fetchone()
      		if get:
				#тут по-идеи я должен получить данные юзера по ид и сохранить в кэш, 
				#но так как я "похимичил" это стало невозможно, и это и есть проблема
        		reg = re.compile('[^a-zA-Z ]')
        		cache.set('get', reg.sub('',str(get)))
        		session['admin'] = True
        		cur.close()
        		return redirect('/admin')
  	else:
    	return redirect('/admin')
 	return render_template('pages/admin_submit.html', title = 'Sign In!')
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ответы на вопрос 2
@pcdesign
Какой смысл это кешировать? Имхо, кеш в данном конретном случае не нужен.
В куках браузера достаточно хранить сессию в зашифрованном виде.

И вот это:
session['admin'] = True
Это нормально, если админ будет всегда один, но если админов несколько и надо отслеживать чем они там занимаются, тогда что делать?
Обычно пишут:
session['admin'] = get['id']

P.S.: И использовать слово get в качестве переменной не комильфо, из-за того что это служебное слово для извлечения ключей из словарей.
Ответ написан
alternativshik
@alternativshik
Никакой адекватный человек не будет кешировать страницу логина... Там 1 запрос в неделю приходит, нафига там кеш?..
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы