使用Flask-Login在Flask中获取'str'对象没有属性'is_authenticated'

加利耶

我正在尝试使用Flask-Login为Flask设置登录名。我有一个针对用户的CouchDB;客户文档中有一个称为“用户”的对象。

class User(UserMixin):
    def __init__ (self, user) :
        self.name = user['name']
        self.password = user['password']
        self.id= user['id']

    def is_active(self):
        return True

    def is_authenticated(self):
        return True

    def is_anonymous(self):
        return False

    def get_id(self):
        return str(self.id)


def check_user(id):
    for row in db.query(map_auth):
        if row.value['id'] == id:
            authUser = User(row.value)
            return authUser
        else:
            return "User not found in database"

@login_manager.user_loader
def load_user(id):
    return check_user(id)


@app.route('/login/', methods=['GET','POST'])
def login():  
    if request.method == 'POST':
        for row in db.query(map_auth):
            if row.value['name'] == request.form['name'] and row.value['password'] == request.form['password']:
                authUser = User(row.value)
        flask_login.login_user(authUser)
        app.logger.debug(authUser.name)
        app.logger.debug(authUser.is_authenticated())
        app.logger.debug(authUser.is_active())
        return redirect(url_for('protected'))
    return render_template('login.html')

map_auth是来自python-couchdb的视图函数。该视图为用户返回一个JSON列表,其中包含以下信息:{"name": "xxxx", "id":1, "password": "password"}

我通过User在Python Shell中进行仿真来验证该类是否独立工作。在Flask中使用它时,出现以下错误。

  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 2000, in __call__
    return self.wsgi_app(environ, start_response)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1991, in wsgi_app
    response = self.make_response(self.handle_exception(e))
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1567, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1988, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1641, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1544, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1639, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1625, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/lib/python2.7/dist-packages/flask_login.py", line 790, in decorated_view
    elif not current_user.is_authenticated:
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/local.py", line 343, in __getattr__
    return getattr(self._get_current_object(), name)
AttributeError: 'str' object has no attribute 'is_authenticated'

我已经验证了authUser我使用对象是否is_authenticated()正确。

同义词

如果用户标识无效,则应返回user_loader函数(在您的情况下为in check_userNone在您的情况下,将"User not found in database"返回一个字符串,这将创建您遇到的异常。

None如果用户标识无效,则返回

记录

如果ID无效,则应返回None不引发异常)。(在这种情况下,将手动从会话中删除该ID,然后继续进行处理。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

'str'对象没有属性'is_authenticated'

来自分类Dev

Flask-Login中使用的“ is_authenticated”方法有什么意义?

来自分类Dev

Flask-Login is_authenticated不一致

来自分类Dev

'WSGIRequest' 对象没有属性 'is_authenticated'

来自分类Dev

Flask-Login logout_user 不会改变 is_authenticated

来自分类Dev

Flask登录-is_authenticated和is_anonymous不反映登录/注销

来自分类Dev

在Flask中获取“'请求'对象没有属性'名称'”

来自分类Dev

@login_required和is_authenticated()-何时在Django中使用哪个?

来自分类Dev

Stormpath中是否有一个简单的“ is_authenticated”解决方案?

来自分类Dev

在Django中,获取'str'对象没有属性'get'

来自分类Dev

AttributeError:使用Flask SqlAlchemy,“ tuple”对象没有属性“ drivername”

来自分类Dev

Flask“属性'功能'对象中的蓝图没有属性'名称'

来自分类Dev

Flask - “请求”对象没有“方法”属性

来自分类Dev

'str'对象使用widget_tweaks没有属性'field'

来自分类Dev

'str'对象使用beautifulsoup没有属性'p'

来自分类Dev

'str'对象在Python3中没有属性'decode'

来自分类Dev

“功能”对象在熊猫中没有属性“ str”

来自分类Dev

AttributeError:'str'对象在tkinter中没有属性'set'

来自分类Dev

AttributeError:“ _ AppCtxGlobals”对象在Flask中没有属性“ user”

来自分类Dev

Flask SQLAlchemy:属性错误:“函数”对象没有“翻译”属性

来自分类Dev

TypeError:“ NoneType”对象在使用SQLite3的Flask中没有属性“ __getitem__”

来自分类Dev

'is_authenticated'在模板中仍然始终返回false

来自分类Dev

AttributeError:“ str”对象没有属性“ findAll”,使用BeautifulSoup从Youtube抓取数据时没有输出

来自分类Dev

str对象没有属性“ *”

来自分类Dev

包含 Pandas 数据框列中的函数(AttributeError: 'str' 对象没有属性 'str'

来自分类Dev

对于python中的Cloud Firestore事务,获取“ str”对象没有属性“ _max_attempts”错误

来自分类Dev

Python Flask:AttributeError:'NoneType'对象没有属性'is_active'

来自分类Dev

Flask AttributeError:“ NoneType”对象没有属性“ split”

来自分类Dev

AttributeError:“ Flask”对象没有属性“ user_options”

Related 相关文章

  1. 1

    'str'对象没有属性'is_authenticated'

  2. 2

    Flask-Login中使用的“ is_authenticated”方法有什么意义?

  3. 3

    Flask-Login is_authenticated不一致

  4. 4

    'WSGIRequest' 对象没有属性 'is_authenticated'

  5. 5

    Flask-Login logout_user 不会改变 is_authenticated

  6. 6

    Flask登录-is_authenticated和is_anonymous不反映登录/注销

  7. 7

    在Flask中获取“'请求'对象没有属性'名称'”

  8. 8

    @login_required和is_authenticated()-何时在Django中使用哪个?

  9. 9

    Stormpath中是否有一个简单的“ is_authenticated”解决方案?

  10. 10

    在Django中,获取'str'对象没有属性'get'

  11. 11

    AttributeError:使用Flask SqlAlchemy,“ tuple”对象没有属性“ drivername”

  12. 12

    Flask“属性'功能'对象中的蓝图没有属性'名称'

  13. 13

    Flask - “请求”对象没有“方法”属性

  14. 14

    'str'对象使用widget_tweaks没有属性'field'

  15. 15

    'str'对象使用beautifulsoup没有属性'p'

  16. 16

    'str'对象在Python3中没有属性'decode'

  17. 17

    “功能”对象在熊猫中没有属性“ str”

  18. 18

    AttributeError:'str'对象在tkinter中没有属性'set'

  19. 19

    AttributeError:“ _ AppCtxGlobals”对象在Flask中没有属性“ user”

  20. 20

    Flask SQLAlchemy:属性错误:“函数”对象没有“翻译”属性

  21. 21

    TypeError:“ NoneType”对象在使用SQLite3的Flask中没有属性“ __getitem__”

  22. 22

    'is_authenticated'在模板中仍然始终返回false

  23. 23

    AttributeError:“ str”对象没有属性“ findAll”,使用BeautifulSoup从Youtube抓取数据时没有输出

  24. 24

    str对象没有属性“ *”

  25. 25

    包含 Pandas 数据框列中的函数(AttributeError: 'str' 对象没有属性 'str'

  26. 26

    对于python中的Cloud Firestore事务,获取“ str”对象没有属性“ _max_attempts”错误

  27. 27

    Python Flask:AttributeError:'NoneType'对象没有属性'is_active'

  28. 28

    Flask AttributeError:“ NoneType”对象没有属性“ split”

  29. 29

    AttributeError:“ Flask”对象没有属性“ user_options”

热门标签

归档