我在不同的地方编写了两个user_loader,但只有第一个在flask_login中工作?

时间:2018-01-11 02:55:24

标签: python flask flask-login

我在admin / login.py中的第一个user_loader和user / login.py中的第二个user_loader,但是当我使用user / login.py时,调用了admin / login中的user_loader; 像这样的错误:enter image description here

也许在其他地方发生了一些问题,但是is_authenticated的值是True。我猜我用错误的方式使用了user_load。 救命!提前谢谢。

1 个答案:

答案 0 :(得分:0)

我在烧瓶中使用了2个LoginManagers,一个用作用户,另一个用作管理员,但我发现只有一个工作,所以我重写login_required参考这个anwser

我的用户模型就是这样。

class User(UserMixin):
def __init__(self, username, role):
    self.username = username
    self.id = self.get_id()
    self.urole = role

@property
def password(self):
    raise AttributeError('password is not a readable attribute')

@password.setter
def password(self, password):
    self.password_hash = generate_password_hash(password)
    admin_collection.insert_one({'username':self.username,'password':self.password_hash,'id':self.id})

def verify_password(self, password):
    password_hash = self.get_password_hash()
    if password_hash is None:
        return False
    return check_password_hash(password_hash, password)

def get_password_hash(self):
    pswd = admin_collection.find_one({'username':self.username})
    return pswd['password'] if pswd else None

def get_id(self):
    find_id = admin_collection.find_one({'username':self.username})
    return find_id['id']

def get_role(self):
    return self.urole