我试图用neo4j实现Flask-login。尝试使用此Flask Login Documentation来实现。
我已将四种方法添加到用户类
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行,在登录中 login_user(用户)
文件" /../ lib / python3.4 / site-packages / flask_login.py",第709行,在login_user中 如果不是强制而不是user.is_active:
AttributeError:' Node'对象没有属性' is_active'
另外,我不确定如何定义加载用户回调函数。
@login_manager.user_loader
def load_user(user_id):
return User.get(user_id)
我找不到任何涵盖此主题的文档。有人可以帮助让这个工作或指向文档吗?
答案 0 :(得分:0)
find_one
方法返回Node
。您可能希望返回username
的{{1}}属性而不是整个实体。所以你需要这样的东西:
Node