我一直在調查智威湯遜,我對使用它非常感興趣。由於數字簽名和有效負載內容,我喜歡它不需要服務器上的狀態檢查。JSON Web令牌(JWT) - 驗證客戶端
我遇到困難的事情是驗證客戶端。我知道簽名允許服務器說「是的,我發出了這個令牌,它是有效的」,但我並不完全理解服務器如何驗證客戶端是誰說的。
數字簽名在服務器端是有意義的,但客戶端無法簽署任何內容來驗證它是誰,因爲瀏覽器無法保守祕密。這是我無法包裹頭部的一部分。如果瀏覽器無法保密,那麼它如何將數據添加到令牌中(如隨機數或有關所請求資源的信息)以包含在簽名中,類似於oAuth 1.0的工作原理。
這不支持?有沒有其他的方式來驗證瀏覽器是誰說的?如果我的客戶有一個泄漏令牌的安全漏洞會怎麼樣?如果客戶端未通過驗證,任何人都不能使用這些令牌?我不認爲「短期到期」是解決這個問題的好辦法。
有人能幫我把我的頭圍繞JWT的這部分嗎?
嗯,我沒有想過使用與客戶端相關的祕密,這是一個好主意。 Oauth 1.0a通過讓「客戶端」(實際上是另一臺服務器)對其整個請求進行簽名來處理此問題。在瀏覽器中沒有辦法做到這一點,但我喜歡使用來自客戶端的動態祕密的想法。 – BeniRose