Python flask登录注销匿名UserMixin错误

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):

我基于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):

    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_必需的装饰程序注册的函数调用。