**服务器端 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
我已经尝试了许多选择,这个问题仍然存在。希望能有一个解决方案。提前感谢!
1条答案
按热度按时间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/解码令牌细节,以确保你得到的令牌值是有效的。