Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python flask登录仅在get_id()返回self.email时有效_Python_Flask_Sqlalchemy_Flask Sqlalchemy_Flask Login - Fatal编程技术网

Python flask登录仅在get_id()返回self.email时有效

Python flask登录仅在get_id()返回self.email时有效,python,flask,sqlalchemy,flask-sqlalchemy,flask-login,Python,Flask,Sqlalchemy,Flask Sqlalchemy,Flask Login,我的用户类不是从UserMixin继承的,而是定义自己的成员和登录所需的函数 只有设置get_id()以返回实例电子邮件时,登录过程才有效。如果我试图在用户名或实际id上执行此操作,我没有收到错误,但我注意到我没有登录(我无法访问要求我使用@required\u login登录的url) 编辑:在提出问题时,我不明白get_id()需要与load_user()匹配 它只能这样工作,因为get_id()需要匹配登录\u管理器。用户加载程序,在我的情况下,它需要用户的电子邮件。也发布您的用户加载程序

我的用户类不是从UserMixin继承的,而是定义自己的成员和登录所需的函数

只有设置get_id()以返回实例电子邮件时,登录过程才有效。如果我试图在用户名或实际id上执行此操作,我没有收到错误,但我注意到我没有登录(我无法访问要求我使用@required\u login登录的url)

编辑:在提出问题时,我不明白get_id()需要与load_user()匹配


它只能这样工作,因为
get_id()
需要匹配
登录\u管理器。用户加载程序
,在我的情况下,它需要用户的电子邮件。

也发布您的用户加载程序?@Busturdust在自己找到后看到了您的评论。干杯mate@Busturdust我相信这里的整个问题是关于哪个模块与
用户
类通信
class User(db.Model):
    id = db.Column(db.Integer,primary_key=True)
    email = db.Column(db.Unicode(128))
    name = db.Column(db.Unicode(128))
    password = db.Column(db.Unicode(1024))
    authenticated = db.Column(db.Boolean, default=False)
    posts = db.relationship('Post')
    #-----login requirements-----
    def is_active(self):
        # all users are active
        return True 

    def get_id(self):
        # returns the user e-mail
        return unicode(self.email)

    def is_authenticated(self):
        return self.authenticated

    def is_anonymous(self):
        # False as we do not support annonymity
        return False
@login_manager.user_loader
def load_user(email):
    return User.get_user(email)