簡體   English   中英

Flask JWT 擴展“不允許指定的 alg 值”錯誤

[英]Flask JWT Extended “The specified alg value is not allowed” Error

當向 flask 路由發出請求時,該路由需要 JWT 才能使用(flask-restful 資源上的@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;
    });

在同一個 go 中,它按預期工作,但是在刷新時它會顯示 422 錯誤。 我將令牌存儲在 localstorage 中並將其加載到 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錯誤的資源。 任何援助將不勝感激: :)

當 JWT 令牌在我的 spring 引導身份驗證服務中創建但資源服務是 flask 微服務時,我遇到了同樣的問題。 我嘗試了以下步驟來整理它,

  • 我將令牌粘貼到jwt.io調試器中。
  • 在右側,我找到了解碼的 header ,其中 alg 值如下,
    {
      "alg": "HS512"
    }
  • 我將 alg 放在 flask 資源服務器的應用程序配置中,如下所示,
    app.config['JWT_ALGORITHM'] = 'HS512'

之后錯誤消息消失了,我能夠從解碼的令牌中解析信息。 因此,您需要找到生成令牌的算法,並在 flask app.config中設置適當的算法。

如果令牌是使用與app.config['JWT_ALGORITHM']不同的算法創建的,則可能會發生這種情況

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM