我使用Python,Flask和SQLite编写的简单博客系统, 我为它创建了一个简单的授权系统。不需要任何花哨的东西,所以只需通过表单发送登录名和密码并在Flask的会话中设置标志即可。我想知道这样的事情是如何完成的,所以我没有使用任何模块。
我想知道这种方法是否正确且足够安全。
# from auth module
@auth.route('/login', methods=['POST'])
def login():
"""Login as blog admin."""
# Successeful login conditions
user_is_valid = request.form['user'] == current_app.config['USER']
password_is_valid = request.form['password'] == current_app.config['PASSWORD']
trap_is_empty = not request.form['trap']
# Login user if credentials are correct
if user_is_valid and password_is_valid and trap_is_empty:
session['is_admin'] = True
return redirect(url_for('admin.posts_page'))
else:
return render_template('auth.html')
# from admin module
@admin.before_request
def before_request():
""" Before any request check admin flag, redirect to the main page if there is none. """
if not session.get('is_admin'):
return redirect(url_for('blog.index_page'))
proj.db.connect()