1. Сессии во Flask:
```python
from flask import Flask, session
app = Flask(__name__)
app.secret_key = "секрет"
@app.route("/login")
def login():
session["user_id"] = 1
return "Вы вошли"
@app.route("/logout")
def logout():
session.pop("user_id", None)
return "Вы вышли"
```
2. Хеширование паролей:
```python
from werkzeug.security import generate_password_hash, check_password_hash
password = generate_password_hash("1234")
print(check_password_hash(password, "1234")) # True
```
3. Простая проверка авторизации:
```python
@app.route("/profile")
def profile():
if "user_id" not in session:
return redirect("/login")
return "Профиль пользователя"
```
1. Реализуйте форму входа пользователя с проверкой пароля.
2. Используйте `session` для хранения статуса входа.
3. Создайте страницу профиля, доступную только после авторизации.
4. Добавьте кнопку выхода, очищающую сессию.
1. Добавьте регистрацию нового пользователя с хешированием пароля.
2. Настройте Flask-Login для управления сессией пользователя.
3. Защитите маршруты от неавторизованного доступа.
4. Реализуйте базовую валидацию формы (имя не может быть пустым).
1. Как работает механизм сессий во Flask?
2. Почему нельзя хранить пароли в открытом виде?
3. Что делает функция check_password_hash()?
4. Как запретить доступ к странице для незарегистрированных пользователей?
5. Какие библиотеки используются для безопасности Flask-приложений?