reactjs flask_jwt_extended.异常,无授权错误:缺少授权标题

tv6aics1  于 2023-02-04  发布在  React
关注(0)|答案(1)|浏览(151)

**服务器端 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

客户端React

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))
}

我在客户端指定了标头,但仍然出现错误:

flask_jwt_extended.exceptions.NoAuthorizationError: Missing Authorization Header

我的 flask 版本如下:

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

我已经尝试了许多选择,这个问题仍然存在。希望能有一个解决方案。提前感谢!

ql3eal8s

ql3eal8s1#

我以前没有使用过这些库,但听起来可能是Flask-RESTful库的问题。
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
如果你没有得到console.log(token)的值,我会从那里开始,也许你可以检查一下是否可以通过https://jwt.io/解码令牌细节,以确保你得到的令牌值是有效的。

相关问题