Partially protecting routes =========================== There may be cases where you want to use the same route regardless of if a JWT is present in the request or not. In these situations, you can use :func:`~flask_jwt_extended.jwt_required` with the ``optional=True`` argument. This will allow the endpoint to be accessed regardless of if a JWT is sent in with the request. If no JWT is present, :func:`~flask_jwt_extended.get_jwt` and :func:`~flask_jwt_extended.get_jwt_header`, will return an empty dictionary. :func:`~flask_jwt_extended.get_jwt_identity`, :attr:`~flask_jwt_extended.current_user`, and :func:`~flask_jwt_extended.get_current_user` will return None. If a JWT that is expired or not verifiable is in the request, an error will be still returned like normal. .. literalinclude:: ../examples/optional_protected_endpoints.py