如何使用flask-login限制单个用户登录?



我是Flask应用程序开发的新手。目前,我在Flask服务器上部署了一个ML应用程序。

现在,任何人都可以注册和登录来运行ML推理。但我希望活动用户为单个用户。这意味着如果任何用户在已部署的站点中处于活动状态,则没有其他用户可以登录到该站点。

下面是一些相关代码:

from flask_login import (
LoginManager,
UserMixin,
login_user,
login_required,
logout_user,
current_user,
)
class User(UserMixin, db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(50), unique=True)
email = db.Column(db.String(50), unique=True)
password = db.Column(db.String(80))

@login_manager.user_loader
def load_user(user_id):
return User.query.get(int(user_id))

class LoginForm(FlaskForm):
username = StringField(
"Username", validators=[InputRequired(), Length(min=4, max=50)]
)
password = PasswordField(
"Password", validators=[InputRequired(), Length(min=8, max=80)]
)
remember = BooleanField("Remember me")

@app.route("/login", methods=["GET", "POST"])
def login():
form = LoginForm()
if form.validate_on_submit():
user = User.query.filter_by(username=form.username.data).first()
if user:
if check_password_hash(user.password, form.password.data):
login_user(user, remember=form.remember.data)
return redirect(url_for("index"))
return redirect(url_for("error", code="500.3"))
return render_template("login.html", form=form)

有没有人有任何建议,我可以如何实现我的想法?如果有人知道一个内置功能可能有帮助,我正在使用Flask-Login

试试flask- limitter, flask- limitter允许您为页面或IP地址设置限制

访问https://flask-limiter.readthedocs.io/en/stable/

最新更新