烧瓶 JWT 扩展"不允许指定的藻值"错误



当向需要 JWT 访问的烧瓶路由发出请求时(烧瓶休息资源上的@jwt_required装饰器(,我收到一条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;
});

在同一个过程中,它按预期工作,但是在刷新时它会显示 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错误的任何资源。任何帮助将不胜感激!:)

在我的 Spring 启动身份验证服务中创建 JWT 令牌时,我遇到了同样的问题,但资源服务是一个烧瓶微服务。我尝试了以下步骤来整理它,

  • 我将令牌粘贴到调试器 jwt.io。
  • 在右侧,我找到了解码的标头,其中 alg 值如下,
{
"alg": "HS512"
}
  • 我将 alg 放在烧瓶资源服务器的应用程序配置中,如下所示,
app.config['JWT_ALGORITHM'] = 'HS512'

之后,错误消息消失了,我能够从解码的令牌中解析信息。因此,您需要找到生成令牌的算法,并在烧瓶app.config中设置适当的算法。

如果令牌是使用不同的算法创建的,则可能会发生这种情况,然后app.config['JWT_ALGORITHM']

相关内容

  • 没有找到相关文章

最新更新