2017-01-19 8 views
1

私はFlaskで遊んでいます。 Flask-RestfulとFlask-JWTを使用してAPIを作成しました。

ときフラスコ内でDebug=True、と私はdebug=Falseは、返された応答が
Flask-JWTはDebug = Falseのときにエラーを生成します

[2017-01-19 19:43:10,753] ERROR in app: Exception on /api_0_1/deals [GET] 
Traceback (most recent call last): 
    File "C:\Users\ARFATS~1\Desktop\Dealflow\venv\lib\site-packages\flask\app.py", line 1612, in full_dispatch_request 
    rv = self.dispatch_request() 
    File "C:\Users\ARFATS~1\Desktop\Dealflow\venv\lib\site-packages\flask\app.py", line 1598, in dispatch_request 
    return self.view_functions[rule.endpoint](**req.view_args) 
    File "C:\Users\ARFATS~1\Desktop\Dealflow\venv\lib\site-packages\flask_restful\__init__.py", line 477, in wrapper 
    resp = resource(*args, **kwargs) 
    File "C:\Users\ARFATS~1\Desktop\Dealflow\venv\lib\site-packages\flask_jwt\__init__.py", line 176, in decorator 
    _jwt_required(realm or current_app.config['JWT_DEFAULT_REALM']) 
    File "C:\Users\ARFATS~1\Desktop\Dealflow\venv\lib\site-packages\flask_jwt\__init__.py", line 155, in _jwt_required 
    headers={'WWW-Authenticate': 'JWT realm="%s"' % realm}) 
JWTError: Authorization Required. Request does not contain an access token 

、このスタックトレースを持つ内部サーバーエラーであるとき、私は、しかしenter image description here

として応答を取得し、認証ヘッダを送信しません
Flask-JWTがDebug = Trueのときの応答で応答したいと思います。しかし、プロダクションサーバーではデバッグを使用できません。

私の独自のjwt_requiredデコレータを使用する方法もあります。他の方法はありますか?

また、もし私が紛失しているものがあれば、それを知ってうれしいです。あなたのフラスコアプリにこの設定を追加する必要があります

おかげ

答えて

0

は:デバッグがtrueの場合

app.config['PROPAGATE_EXCEPTIONS'] = True 

、PROPAGATE_EXCEPTIONSもデフォルトでtrueに設定されています。

代わりにflask-jwt-extendedの代わりに(https://github.com/vimalloc/flask-jwt-extended)をチェックすることをお勧めします。これはPROPAGATE_EXCEPTIONSを処理します。放棄されたフラスコjwtライブラリを置き換え、JWT(リフレッシュトークン、JWTへのカスタムデータの追加、新鮮でないトークンなど)を扱う際にコンビニエンスを追加することを目指しています。完全な開示、私はその拡張の著者です。

乾杯。

+0

ありがとうございます。私は間違いなくFlask-JWT-extendedをチェックします。 –

関連する問題