0

Server-side flask

@project_ns.route('/projects')
class ProjectsResource(Resource):

    @project_ns.marshal_list_with(project_model)
    @jwt_required()
    def get(self):
        """Get all projects """
        user_id = User.query.filter_by(username=get_jwt_identity()).first() # Filter DB by token (username)

        projects=Project.query.filter_by(user_id=user_id)

        #projects = Project.query.all()

        return projects

client-side reactjs

const getAllProjects=()=>{
    const token = localStorage.getItem('REACT_TOKEN_AUTH_KEY');
    console.log(token)


    const requestOptions = {
        method: 'GET',
        headers: {
            'content-type': 'application/json',
            'Authorization': `Bearer ${JSON.parse(token)}`
        },
        body: "Get projects listed"

    }

    fetch('/project/projects', requestOptions)
    .then(res => res.json())
    .then(data => {
        setProjects(data)
    })
    .catch(err => console.log(err))
}

I specified header on the client side and the error still occurs:

flask_jwt_extended.exceptions.NoAuthorizationError: Missing Authorization Header

my flask versions are as follows:

Flask==2.0.1
Flask-Cors==3.0.10
Flask-JWT-Extended==4.2.3
Flask-Migrate==3.1.0
Flask-RESTful==0.3.9
flask-restx==0.5.0
Flask-SQLAlchemy==2.5.1

I have tried many options and the issue is still persisting. Would love to come to a resolution. Thanks in advance!

1 Answer 1

1

I haven't used these libraries before, but it sounds like it might possibly be an issue with the Flask-RESTful library?

https://stackoverflow.com/a/52102884/2077884

https://github.com/vimalloc/flask-jwt-extended/issues/86#issuecomment-335509456

https://github.com/vimalloc/flask-jwt-extended/issues/86#issuecomment-444983119

If you're not getting a value for console.log(token), I would start there. And maybe check to see if you can decode the token details via https://jwt.io/ to ensure that the value you have for token is valid.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.