Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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
用neo4j实现Flask登录_Flask_Neo4j_Py2neo - Fatal编程技术网

用neo4j实现Flask登录

用neo4j实现Flask登录,flask,neo4j,py2neo,Flask,Neo4j,Py2neo,我正在尝试用neo4j实现Flask登录。正在尝试使用此工具实现 我已经将四个方法添加到用户类中 class User: def __init__(self, username): self.username = username def is_authenticated(self): return True def is_active(self): return True def is_anonymous(

我正在尝试用neo4j实现Flask登录。正在尝试使用此工具实现

我已经将四个方法添加到用户类中

class User:
    def __init__(self, username):
        self.username = username

    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.id)

    def find(self):
        user = graph.find_one("User", "username", self.username)
        return user
当我尝试调用login_user(user)时,我得到一个错误

def login():
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']

        if not User(username).verify_password(password):
            flash('Invalid login.')
        else:
            session['username'] = username
            flash('Logged in.')

            user = User(username).find()
            login_user(user)
            return redirect(url_for('index'))

    return render_template('login.html')
我得到这个错误

文件“/../auth/view.py”,第134行,登录
登录用户(用户)
文件“/../lib/python3.4/site packages/flask\u login.py”,第709行,登录用户
如果未强制且未激活user.u:
AttributeError:“节点”对象没有属性“处于活动状态”

另外,我不确定如何定义加载用户回调函数

@login_manager.user_loader
def load_user(user_id):
    return User.get(user_id)

我找不到任何涉及此主题的文档。有人可以帮助实现这一点或指向文档吗?

方法
find\u one
返回一个
节点。您可能希望返回该
节点的
username
属性,而不是整个实体。因此,您需要类似以下内容:

def find(self):
    user = graph.find_one("User", "username", self.username)
    # TODO: handle the case where user is None (user not found)
    return user["username"]

find_one
方法返回一个
节点
。您可能希望返回该
节点的
username
属性,而不是整个实体。因此,您需要类似以下内容:

def find(self):
    user = graph.find_one("User", "username", self.username)
    # TODO: handle the case where user is None (user not found)
    return user["username"]

仍然不能解决问题。现在,我得到了这个错误-AttributeError:'str'对象没有属性'is_active'。我想与Neo4j相比,其他DBs中用户类的表示方式有所不同。查看login_user的定义,它说“登录用户。您应该将实际的用户对象传递给此”。它试图访问用户属性“user.is\u active”。是否可以返回节点的对象表示形式?。例如,mongoDb的“find_one”方法返回Document的对象表示仍然不能解决这个问题。现在,我得到了这个错误-AttributeError:'str'对象没有属性'is_active'。我想与Neo4j相比,其他DBs中用户类的表示方式有所不同。查看login_user的定义,它说“登录用户。您应该将实际的用户对象传递给此”。它试图访问用户属性“user.is\u active”。是否可以返回节点的对象表示形式?。例如,mongoDb“find_one”方法返回文档的对象表示形式