Python flask登录注销匿名UserMixin错误
我基于flask登录的UserMixin类定义MembershipUsers类Python flask登录注销匿名UserMixin错误,python,flask-login,Python,Flask Login,我基于flask登录的UserMixin类定义MembershipUsers类 class MembershipUsers(UserMixin): applicationid = None userid = None password = None def get_id(self): return unicode(self.userid) 和登录过程如下: def login_membership(userid, password):
class MembershipUsers(UserMixin):
applicationid = None
userid = None
password = None
def get_id(self):
return unicode(self.userid)
和登录过程如下:
def login_membership(userid, password):
login_result, membership_users = _service.login(userid, password)
if login_result == LOGIN_RESULT.OK:
logged_in = login_user(membership_users)
\u service.login
是一种登录并创建MembershipUsers实例的方法。如果login\u结果正常,则调用flask login的login\u user()
并在下面注销:
def logout_membership():
logout_user()
登录是可以的。但是注销用户给出错误信息:
'AttributeError: 'AnonymousUserMixin' object has no attribute 'userid'
为什么要提出这个错误?为什么要匿名UserMixin?发生此错误是因为当前用户未登录。 正如@IcarianComplex所指出的,注销方法即
logout\u membership()
没有所需的@login\u
装饰程序。如果要在内部执行检查,请使用
if current_user.is_authenticated:
logout_user()
似乎这只意味着logout_membership()被一个未向flask.ext.login.login_必需的装饰程序注册的函数调用。