代码之家  ›  专栏  ›  技术社区  ›  kramer65

KeyError:Flask_security中的“security”?

  •  3
  • kramer65  · 技术社区  · 11 年前

    我正在使用Flask建立一个网站,我现在正在尝试使用 Flask_Security 用于基于令牌的认证。现在我想从用户获取auth_token,为此我使用 get_auth_token() method 。不幸的是,我在这条消息下面看到了堆栈。

    有人知道怎么了吗?欢迎提供所有提示!

    Traceback (most recent call last):
      File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1836, in __call__
        return self.wsgi_app(environ, start_response)
      File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1820, in wsgi_app
        response = self.make_response(self.handle_exception(e))
      File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1403, in handle_exception
        reraise(exc_type, exc_value, tb)
      File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1817, in wsgi_app
        response = self.full_dispatch_request()
      File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1477, in full_dispatch_request
        rv = self.handle_user_exception(e)
      File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1381, in handle_user_exception
        reraise(exc_type, exc_value, tb)
      File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1475, in full_dispatch_request
        rv = self.dispatch_request()
      File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1461, in dispatch_request
        return self.view_functions[rule.endpoint](**req.view_args)
      File "/home/kramer65/myapp-kram/app/views/apiviews.py", line 33, in api_login
        return jsonify({'token': user.get_auth_token()})
      File "/usr/local/lib/python2.7/dist-packages/flask_security/core.py", line 313, in get_auth_token
        return _security.remember_token_serializer.dumps(data)
      File "/usr/local/lib/python2.7/dist-packages/werkzeug/local.py", line 338, in __getattr__
        return getattr(self._get_current_object(), name)
      File "/usr/local/lib/python2.7/dist-packages/werkzeug/local.py", line 297, in _get_current_object
        return self.__local()
      File "/usr/local/lib/python2.7/dist-packages/flask_security/core.py", line 30, in <lambda>
        _security = LocalProxy(lambda: current_app.extensions['security'])
    KeyError: 'security'
    
    1 回复  |  直到 11 年前
        1
  •  6
  •   davidism    11 年前

    您需要初始化应用程序的扩展。

    security = Security()
    security.init_app(app, user_datastore)
    

    See the quickstart in the docs.

    推荐文章