成功登录后,Flask-Login用户仍然是匿名的

时间:2018-03-24 21:12:12

标签: python python-3.x authentication flask flask-login

我已经完成了有关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。这可能有什么问题?

0 个答案:

没有答案