首页 > 解决方案 > 在 Python 中使用来自不同机器的多个用户进行烧瓶登录

问题描述

我正在尝试创建一个登录页面,该页面直接从 SQL DB 验证用户。我使用的会话如下:

from flask import Flask, session, redirect, url_for, escape, request

app = Flask(__name__)

@app.route('/login', methods=['GET', 'POST'])

def login():

    username = request.form['username']
    password = request.form['password']
    session['username'] = username
    # db.verify authenticates user from SQL DB
    verifiedUser = db.verifyUser(username, password)
    if verifiedUser:
        session['logged_in'] = True
        global currentUser
        currentUser = session['username']
        return redirect(url_for('home'))
    else:
        errormsg = "wrong password"
        flash(errormsg)
        print(errormsg)
        return render_template('login.html', error=errormsg)

@app.route('/logout')

def logout():

    # Remove the username from the session if it's there

    session.pop('username', None)
    return redirect(url_for('login'))

但是通过这种方法,两个名为“Jack”和“Jill”的用户从两台不同的机器登录,系统将覆盖并只接受一个用户。

我查看了烧瓶登录,但我的应用程序中没有用户模型,因为我直接使用 SQL DB 来验证用户名和密码。https://flask-login.readthedocs.io/en/latest/ 谁能提供一个示例或任何其他示例来实现会话以在 Python 中处理多个用户?

标签: pythonsessionflaskflask-login

解决方案


推荐阅读