2017-01-19 1 views
1

나는 Flask로 놀고 있습니다. Flask-Restful 및 Flask-JWT를 사용하여 API를 만들었습니다.

플라스크에 Debug=True, 나는이 인증 헤더를 전송하지 않습니다, 나는 debug=False을 반환하는 응답이 스택 트레이스와 내부 서버 오류가 그러나 enter image description here

,
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 

으로 응답을받을 때
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을 (를) 처리합니다. 버려진 flask-jwt 라이브러리를 대체하고 JWT (새로 고침 토큰, JWT에 사용자 정의 데이터 추가, 새롭지 않은 토큰 또는 신선한 토큰 등)를 사용할 때 몇 가지 편의를 추가하는 것을 목표로합니다. 전체 공개, 나는 그 확장의 저자입니다.

건배.

+0

감사합니다. Flask-JWT-extended를 꼭 확인하겠습니다. –