我在使用Flask-Login框架进行身份验证时遇到困难。我已尽可能详尽地浏览了文档,但显然我遗漏了一些明显的内容。
class User():
def __init__(self, userid=None, username=None, password=None):
self.userid = userid
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 unicode(self.userid)
def __repr__(self):
return '<User %r>' % self.username
def find_by_username(username):
try:
data = app.mongo.db.users.find_one_or_404({'username': username})
user = User()
user.userid = data['_id']
user.username = data['username']
user.password = data['password']
return user
except HTTPException:
return None
def find_by_id(userid):
try:
data = app.mongo.db.users.find_one_or_404({'_id': userid})
user = User(data['_id'], data['username'], data['password'])
return user
except HTTPException:
return None
上面是我的User类,位于 users/models.py
login_manager = LoginManager()
login_manager.init_app(app)
login_manager.login_view = 'users.login'
@login_manager.user_loader
def load_user(userid):
return find_by_id(userid)
上面是我的用户加载器。
显然有错误消息,但是当尝试访问任何用修饰的视图时@login_required,它会将我重定向到登录表单。据我所知,该login_user函数实际上并不起作用,尽管它True在我调用它时返回。任何建议表示赞赏。
慕运维8079593
吃鸡游戏
相关分类