我已经完成了有关flask-login中登录问题的stackoverflow中的所有问题。但是,在所有情况下,DB使用的是postgresql,sqlite等。我在我的烧瓶应用程序中使用MongoDB。请忽略密码加密/散列等。
类似的问题: Error with flask-login 还有更多,但找不到任何有价值的东西。
用户类的当前代码
class User(UserMixin):
def __init__(self, id, user_name):
self.id = id
self.user_name = user_name
self.active = True
def is_authenticated(self):
return True
def is_active(self):
return self.is_active
def is_anonymous(self):
return False
def get_id(self):
return self.id
user_loader 的代码示例。
@loginManager.user_loader
def loadUser(user_id):
reg_user = db.users.find_one({'_id': user_id})
if reg_user:
user = User(user_id, reg_user['userName'])
if user_id == user.get_id():
return user
return None
登录方法的代码示例
def login():
user_name = request.form['user_name']
pass_word = request.form['pass_word']
if user_name and pass_word:
registered_user = db.users.find_one(user_name, pass_word)
if registered_user:
user = User(str(registered_user['_id']), user_name)
login_user(user) ## This is returning True
return jsonify({
"result": "success",
"message": "Logged In !!",
"name": user.user_name ## correctly set to expected user_name
})
else:
return jsonify({
"result": "Failed",
"message": "User doesn't exist."
})
else: ...
我通过jsonify响应获得了正确的结果。但是,每当我重定向到用" @login_required "装饰的视图时,用户都会被重定向到登录页面。当前用户对象已设置,但跟踪日志显示匿名UserMixin。这可能有什么问题?