Python 检查登录状态

Python 检查登录状态,python,flask,Python,Flask,我正在使用登录系统创建一个网站,这就是我要处理的: 我有两条路线: 第一个是登录页面,下面是代码: @app.route('/login') def login(): return render_template('login.html') @app.route('/login', methods=['POST']) def login_submit(): error = None if request.form['username'] == 'khoa.program

我正在使用登录系统创建一个网站,这就是我要处理的:

我有两条路线:

第一个是登录页面,下面是代码:

@app.route('/login')
def login():
    return render_template('login.html')

@app.route('/login', methods=['POST'])
def login_submit():
    error = None
    if request.form['username'] == 'khoa.programmer' and request.form['password'] == 'HotnCold':
        if request.form['actions'] == 'add-post':
            return redirect('/admin/addpost')
    else:
        error = 'Wrong info'
        return render_template('login.html', error=error)
第二个是addpost路由在用户登录后会被重定向

问题是我不知道如何或如何检查该用户成功登录。我想防止人们只是键入url并在未经许可的情况下访问页面,只是向他们显示消息或将他们重定向到登录页面。请帮忙


对不起我的英语

您可以使用flask登录

@site.route('/login', methods=['GET','POST'])
def login():
    form = LoginForm()
    if g.user is not None and g.user.is_authenticated:
        flash('Wrong info')
        return redirect(url_for('index.index'))
    if form.validate_on_submit() and request.method == "POST":
        name = form.name.data
        passwd = form.passwd.data
或者您可以使用会话检查登录状态

当您登录时,session['login\u in']=True,而当您注销时,session['login\u in']=False

我觉得您希望在请求之间传递经过身份验证的用户,因此您可以使用session

请阅读

请注意,在使用会话之前,您需要为应用程序设置密钥

from flask import Flask
app = Flask(__name__)
app.secret_key = "yoursecret"

我的方法是使用@login\u required decorator装饰我的秘密视图,如中所指定,这里的示例是使用
g
对象。

您可以使用session。这个视频也可以帮助你

您可以使用Flask登录(但您也需要一个登录管理器)。完整的文档也是如此

from flask_login import login_required

@app.route('/account')
@login_required
def account():
    return render_template('account.html')

创建一个检查会话状态的函数

def protectedPage():
if 'userID' not in session:
    return redirect('/log-in', code=302)
if session['userID'] == False:
    return redirect('/log-in', code=302)

您可以声明一个
类用户
,该用户在登录之前设置为
,然后要检查未登录,您可以执行
,如果用户为无:
,例如,有库,但无法将参数传递给重定向函数(据我所知):(Flask登录库在您的整个应用程序中共享,并且位于现有Flask API之上,所以我不明白您在说什么
from flask_login import login_required

@app.route('/account')
@login_required
def account():
    return render_template('account.html')
def protectedPage():
if 'userID' not in session:
    return redirect('/log-in', code=302)
if session['userID'] == False:
    return redirect('/log-in', code=302)