首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flask-login无法进行身份验证

Flask-login无法进行身份验证
EN

Stack Overflow用户
提问于 2017-12-19 21:57:09
回答 1查看 925关注 0票数 2

我确信我写的creditinals是真的,在控制台上,它会将我重定向到仪表板,但之后它会将我重定向到登录页面。为了解决这个问题,我试着清除cookie,但是没有修复。毕竟,我试图在登录后打印用户,结果返回AnonymousUserMixin,所以我认为问题出在flask-login或sqlalchemy上

代码语言:javascript
复制
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), unique=True)
    password = db.Column(db.String(64), unique=False)

    def __init__(self, username, password, tFAt):
        self.username = username
        self.password = password

    def is_authenticated(self):
        return True

    def is_active(self):
        return True

    def is_anonymous(self):
        return False

    def get_id(self):
        return str(self.id)


@login_manager.user_loader
def load_user(username):
    return User.query.filter_by(username = username).first()


@login_manager.unauthorized_handler
def unauthorized():
    return redirect(url_for("login"))


@app.route("/login", methods=["GET", "POST"])
def login():
    if request.method == "POST":
        username = request.form.get("username")
        password = request.form.get("password")
        c_user = User.query.filter_by(username=username, password=password).first()
        if c_user is None:
            return redirect(url_for("login"))
        login_user(c_user)
        return redirect(url_for("dashboard"))
    else:
        return render_template("login.html")


@app.route("/dashboard")
@login_required
def dashboard():
    return render_template("dashboard.html")

if __name__ == "__main__":
    app.secret_key = "ABCD"
    app.run("0.0.0.0", 5555, debug=True)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-19 22:31:55

我刚刚通过改变这个来修复它

代码语言:javascript
复制
def load_user(username):
    return User.query.filter_by(username = username).first()

代码语言:javascript
复制
def load_user(id):
    return User.query.filter_by(id = id).first()

因为在原始代码中返回

代码语言:javascript
复制
def get_id(self):
        return str(self.id)

它必须与您返回的内容相同,For more information

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47888579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档