Я пытаюсь создать страницу входа в систему для своего проекта, для внешнего интерфейса я использовал brython (браузер python).Используя brython, я получил данные формы и отправил их в конечную точку / auth / login.Иногда данные не принимаются, но самая большая проблема возникает, когда я пытаюсь вернуть cookie, если значение флажка Запомнить меня установлено в true, поэтому пользователь автоматически входит в систему при посещении сайта, а не использует сеансы, срок действия которых истекает по окончании просмотра.
Сначала я пытался отправить два файла cookie ответа, один для запоминания пользователя, а другой для хранения электронной почты пользователя, чтобы можно было повторно инициализировать сеанс ['email'].Я прочитал несколько форумов и понял, что этого нельзя достичь, и это было подтверждено в документации на колбу.Поэтому я изменил код и удалил cookie-файл электронной почты, но все равно получаю ту же ошибку.Я также попытался изменить ключ в байтовую строку, но безуспешно.Извините, если код спагетти, но я все еще новичок в веб-разработке.Если что-то еще нужно, пожалуйста, спросите, любая помощь приветствуется.
#code in app.py
@app.route('/auth/login', methods=['POST'])
def user_authen():
global login_success
global login_tries
email = request.form.get('email', 0, type=str)
print(email)
password = request.form.get('password', 0, type=str)
print(password)
remember = request.form.get('remember', 0, type=bool)
print(remember)
login_tries = request.form.get('tries', 0, type=int)
print(login_tries)
if User.login_valid(email, password):
login_success = True
User.login(email)
if remember:
resp = make_response("True")
return resp.set_cookie('login', True,
expires=datetime.datetime.now() + datetime.timedelta(days=365))
else:
print(User.login_valid(email, password))
return "True"
else:
print("login_valid", User.login_valid(email, password))
session["email"] = None
login_success = False
return "return False"
Traceback (most recent call last):
File "C:\Users\nayja\Desktop\Python Projects\.venvs\lpthw\lib\site-packages\flask\app.py", line 2328, in __call__
return self.wsgi_app(environ, start_response)
File "C:\Users\nayja\Desktop\Python Projects\.venvs\lpthw\lib\site-packages\flask\app.py", line 2314, in wsgi_app
response = self.handle_exception(e)
File "C:\Users\nayja\Desktop\Python Projects\.venvs\lpthw\lib\site-packages\flask\app.py", line 1760, in handle_exception
reraise(exc_type, exc_value, tb)
File "C:\Users\nayja\Desktop\Python Projects\.venvs\lpthw\lib\site-packages\flask\_compat.py", line 36, in reraise
raise value
File "C:\Users\nayja\Desktop\Python Projects\.venvs\lpthw\lib\site-packages\flask\app.py", line 2311, in wsgi_app
response = self.full_dispatch_request()
File "C:\Users\nayja\Desktop\Python Projects\.venvs\lpthw\lib\site-packages\flask\app.py", line 1834, in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\Users\nayja\Desktop\Python Projects\.venvs\lpthw\lib\site-packages\flask\app.py", line 1737, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "C:\Users\nayja\Desktop\Python Projects\.venvs\lpthw\lib\site-packages\flask\_compat.py", line 36, in reraise
raise value
File "C:\Users\nayja\Desktop\Python Projects\.venvs\lpthw\lib\site-packages\flask\app.py", line 1832, in full_dispatch_request
rv = self.dispatch_request()
File "C:\Users\nayja\Desktop\Python Projects\.venvs\lpthw\lib\site-packages\flask\app.py", line 1818, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "C:\Users\nayja\Desktop\Python Projects\.venvs\projects\dynamic_web\src\app.py", line 145, in user_authen
return resp.set_cookie('login', True, expires=datetime.datetime.now() + datetime.timedelta(days=365))
File "C:\Users\nayja\Desktop\Python Projects\.venvs\lpthw\lib\site-packages\werkzeug\wrappers\base_response.py", line 481, in set_cookie
samesite=samesite,
File "C:\Users\nayja\Desktop\Python Projects\.venvs\lpthw\lib\site-packages\werkzeug\http.py", line 1144, in dump_cookie
value = to_bytes(value, charset)
File "C:\Users\nayja\Desktop\Python Projects\.venvs\lpthw\lib\site-packages\werkzeug\_compat.py", line 202, in to_bytes
raise TypeError("Expected bytes")
TypeError: Expected bytes