0
我试图使用neo4j实现Flask登录。试图使用这个Flask Login Documentation来实现。使用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(用户)我得到错误
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')
我得到这个错误
File "/../auth/view.py", line 134, in login
login_user(user)
File "/../lib/python3.4/site-packages/flask_login.py", line 709, in login_user
if not force and not user.is_active:
AttributeError: 'Node' object has no attribute 'is_active'
另外,我不确定如何定义加载用户回调函数。
@login_manager.user_loader
def load_user(user_id):
return User.get(user_id)
我找不到涵盖此主题的任何文档。有人可以帮助让这个工作或指向文档?
仍然没有解决问题。现在,我得到这个错误 - AttributeError:'str'对象没有属性'is_active'。我猜想,与Neo4j相比,用户类在其他数据库中的表现存在差异。看看login_user的定义,它会显示“记录一个用户,你应该把实际的用户对象传递给它”。它试图访问用户属性“user.is_active”。是否有可能返回Node的对象表示?例如,mongoDb“find_one”方法返回文档的对象表示 – jas