'In flask, why request header is None in app.before_request()?

When I try to access the header of a request in a function adnotated with @app.before_request, it is always None. Anyone had this problem before? Here is the function:

@app.before_request
def verifyToken():
    if request.endpoint in ['myEndpoint']
        auth = request.headers.get('Authorization')
        if auth.startswith('Bearer '):
            jwtToken = auth[7:]

            try:
                decoded = jwt.decode(jwtToken, 'secret_key', algorithms=['HS256'])
            except jwt.ExpiredSignatureError as e:
                responseObject = {
                "status": "failed",
                "message": "Token has expired. Please login again."
                }
                return jsonify(responseObject), 401


Solution 1:[1]

I was being 5 months in Flask, I discover Flask Embeded Middleware fires up 2 times, the first one got None value and the second one is the client request and each fire up has different request.method, the OPTIONS and <DEFAULT METHOD> of the client, why there is an OPTIONS method first in before...request and after...request befoe goes in client request?, I'm still searching for reference

and that is why I just catch it through conditional statement if request.method != 'OPTIONS': and here how it is look like

from flask import request

def my_before_request():
  if request.method !== 'OPTIONS'
    token = request.headers['<header var>']
    # do something...

# same as after request

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Marvin