-
-
Notifications
You must be signed in to change notification settings - Fork 247
Open
Description
Hello,
Thanks for the great work !
With the OPTIONS HTTP method, a confusing error message is raised, stating that @jwt_required() was not called, although it was called:
"You must call
@jwt_required()orverify_jwt_in_request()"
Here is a way to reproduce the issue :
from flask import Flask, jsonify
from flask_jwt_extended import get_jwt_identity, jwt_required, JWTManager
app = Flask(__name__)
app.config["JWT_SECRET_KEY"] = "super-secret"
jwt = JWTManager(app)
@app.route("/", methods=["GET", "OPTIONS"])
@jwt_required(optional=True)
def protected():
current_user = get_jwt_identity()
return "hello", 200
if __name__ == "__main__":
app.run()$ curl -X OPTIONS http://0.0.0.0:5000/ -i
HTTP/1.0 500 INTERNAL SERVER ERROR
Content-Type: text/html; charset=utf-8
Content-Length: 290
Server: Werkzeug/2.0.2 Python/3.7.11
Date: Wed, 13 Apr 2022 07:55:36 GMT
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>500 Internal Server Error</title>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.</p>
2022-04-13 09:55:36,725] ERROR in app: Exception on / [OPTIONS]
Traceback (most recent call last):
File "/***/venv/lib/python3.7/site-packages/flask/app.py", line 2073, in wsgi_app
response = self.full_dispatch_request()
File "/***/venv/lib/python3.7/site-packages/flask/app.py", line 1518, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/***/venv/lib/python3.7/site-packages/flask/app.py", line 1516, in full_dispatch_request
rv = self.dispatch_request()
File "/***/venv/lib/python3.7/site-packages/flask/app.py", line 1502, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
File "/***/venv/lib/python3.7/site-packages/flask_jwt_extended/view_decorators.py", line 127, in decorator
return current_app.ensure_sync(fn)(*args, **kwargs)
File "test_app.py", line 11, in protected
current_user = get_jwt_identity()
File "/***/venv/lib/python3.7/site-packages/flask_jwt_extended/utils.py", line 58, in get_jwt_identity
return get_jwt().get(config.identity_claim_key, None)
File "/***/venv/lib/python3.7/site-packages/flask_jwt_extended/utils.py", line 25, in get_jwt
"You must call `@jwt_required()` or `verify_jwt_in_request()` "
RuntimeError: You must call `@jwt_required()` or `verify_jwt_in_request()` before using this method
127.0.0.1 - - [13/Apr/2022 09:55:36] "OPTIONS / HTTP/1.1" 500 -
Metadata
Metadata
Assignees
Labels
No labels