Проверка на авторизацию flask
Сайт микро-блог на flask. Есть авторизация для админа. Если вход правильный, то скидывает на страницы, где можно редактировать посты, удалять и создавать новые.
Так вот, если я перейду по ссылке на эти закрытые для обычных пользователей страницы, то они все равно откроются (например, та же страница admin_panel ниже - я могу на нее зайти просто по ссылке). Не могу нагуглить, поэтому пишу здесь. Можно как то сделать условие, типо: если вход совершен, то перейти на страницу можно, если пользователь не вошел, то скидывает на страницу для авторизации? (и этот код я просто смогу вставить во все необходимые функции или страницы, если это так работает)
Буду очень рад какой нибудь ссылке, если у вас есть, куску кода, который я адаптирую под себя или просто объяснению.
Вот примерные куски кода, которые у меня есть.
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
Login = request.form.get('Login')
Password = request.form.get('Password')
db_lp = sqlite3.connect('login_password.db')
cursor_db = db_lp.cursor()
cursor_db.execute(('''SELECT password FROM passwords
WHERE login = '{}';
''').format(Login))
pas = cursor_db.fetchall()
cursor_db.close()
try:
if pas[0][0] != Password:
return render_template('admin/auth_bad.html', tab_title='Ошибка Входа')
except:
return render_template('admin/auth_bad.html', tab_title='Ошибка Входа')
db_lp.close()
return redirect(url_for('admin_panel'))
return render_template('admin/authorization.html', tab_title='Авторизация')
@app.route('/admin_panel')
def admin_panel():
all_posts = databases.get_all_posts()
posts = all_posts[0:10]
page_data = get_page_data('all_posts')
return render_template('admin/admin_index.html', posts=posts, page=page_data,
admin_section='admin_panel',
tab_title='Админская панель')