2015-02-25 3 views
0

Я создаю веб-сайт с помощью Flask, в котором я сейчас пытаюсь использовать Flask_Security для аутентификации на основе токенов. Теперь я хочу получить auth_token от пользователя, для которого я использую get_auth_token() method. К сожалению, я получаю stacktrace ниже этого сообщения.KeyError: 'security' в Flask_security?

Кто-нибудь знает, что не так? Все советы приветствуются!

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' 
+0

@davidism - Оказывается, я действительно не настраивали расширение прав. Я использовал 'security = Security()' вместо 'security = Security (app, user_datastore)'. Спасибо, что встретил меня на правильном пути! Если вы ставите это как ответ ниже моего вопроса, я могу его принять .. :) – kramer65

ответ