当使用( flask-restful资源上的@jwt_required
装饰器)请求一个需要JWT才能访问的flask路由时,我得到一个422 UNPROCESSABLE ENTITY
,消息是:The specified alg value is not allowed
。
登录并导航到调用请求的(前端)路由时:
this.axios.get("/jobs").then(res => {
console.log(res.data);
this.jobs = res.data.jobs;
});
在同一个go中,它按预期工作,但是在刷新时,它会显示422错误。我将令牌存储在本地存储中,并将其加载到axios头中,如下所示:
const api = {
init: function() {
Vue.use(VueAxios, axios);
Vue.axios.defaults.baseURL = DEV_URL;
},
setHeader: function() {
const token = `Bearer ${getToken()}`;
Vue.axios.defaults.headers.common["Authorization"] = token;
},
};
并在我的main.js
中调用init()
和setHeader()
,所以我搞不懂为什么这只在刷新之后才会导致错误。
我还没有找到任何关于如何纠正The specified alg value is not allowed
错误的资源。任何帮助都将不胜感激!:)
发布于 2020-07-28 05:20:18
当在我的spring boot auth服务中创建JWT令牌时,我遇到了同样的问题,但资源服务是一个flask微服务。我尝试了以下步骤来解决这个问题,
{
"alg": "HS512"
}
app.config['JWT_ALGORITHM'] = 'HS512'
在那之后,错误消息消失了,我能够从解码的令牌中解析信息。因此,您需要找到生成令牌的算法,并在flask app.config
中设置适当的算法。
发布于 2019-10-24 23:46:34
如果令牌是使用与app.config['JWT_ALGORITHM']
不同的算法创建的,则可能会发生这种情况
https://stackoverflow.com/questions/58514171
复制相似问题