2

我正在學習Angular,並通過檢查令牌是否過期瞭解了很多用戶授權的示例。例如,如果用戶有一個令牌並且沒有過期,讓他訪問受保護的根。我不明白,這是一個簡單的例子,還是通常的做法。從技術上講,如果我的令牌沒有過期但是簽名無效,我仍然會通過授權的初始階段並且「接近」受保護的資源。我誤解了什麼嗎?正在檢查JWT到期時間是否足以授權用戶?

然後,如果我也在後端使用Django REST JWT,它允許在服務器端使用verify token。這意味着請求應在每個操作中發送到服務器。這不是授權的正確方式,還是有另一個目的?

一般來說,授權用戶或用戶操作的正確方法是什麼?

回答

0

您的客戶端應用程序(Angular App)確實無法驗證JWT,也無法解碼JWT並檢查到期日期。

你的角度應用程序應該:

  • 發送一個請求到API登錄
  • 接收具有JWT令牌的響應。如果請求成功
  • 發送JWT每個請求的API 。通常這是通過設置Authorization: Bearer xxxxxxxxxxxxxxx標題完成的。
  • 服務器/ API必須是對用戶進行身份驗證的服務器/ API,當它收到請求時應該檢查該令牌的有效性。
  • 然後,Angular應用程序應檢查異常的響應,具體而言,我認爲值得一提的是正確對待401響應。

類似403禁止,但專爲當需要驗證和已發生故障或尚未提供

401響應可能會返回指示如何以及爲何驗證失敗的響應消息中使用,即

  • 令牌已過期
  • 簽名驗證失敗
  • 段數無效
相關問題