2016-08-23 112 views
1

我在我們的身份驗證服務器(Node.js)node-jsonwebtoken上生成令牌,該令牌將傳遞給API(PHP Laravel)並由tymondesigns/jwt-auth進行驗證。驗證Laravel中節點生成的JWT

  • 由tymondesigns/JWT-AUTH生成的令牌將成功地由 其自己的驗證函數,節點jsonwebtoken和jwt.io進行驗證。
  • 由node-jsonwebtoken生成的令牌將通過自己的驗證函數jwt.io,而不是tymondesigns/jwt-auth成功驗證。

在Laravel服務器,我收到以下錯誤,當我試圖覈實節點jsonwebtoken生成的令牌:

TokenInvalidException in NamshiAdapter.php line 71: 
Token Signature could not be verified. 

的有效載荷看起來相同,當我看着他們在上jwt.io。我甚至試圖通過傳遞與工作令牌相同的iat,sub,iss,exp,nbf和jti來在Node服務器上生成完全相同的令牌,但是tymondesigns/jwt-auth仍然不會接受它。

還有什麼可能導致這種情況,但在解碼的信息中不可見?我也不是100%確定jti的工作方式。也許有什麼阻止這個工作呢?

節點jsonwebtoken(7.1.9),tymon/JWT-AUTH(0.5.9),namshi /聖何塞(5.0.2)

回答

2

namshi/jose庫最後一個版本是7.0。 對於所有ESxxx算法也存在已知的錯誤。

如果您無法使用該庫驗證簽名,則可以嘗試使用另一個簽名。 我開發了a library,它支持與JWT相關的RFC中描述的所有功能,包括加密支持。

1

其理由是,如通過在Spomky namshi /聖何塞相關iss要求藏漢提到的,一個錯誤。它在7.0中解決,它由tymon/jwt-auth1.0.0-alpha.2使用。但是,由於目前還沒有文檔方式來安裝1.0.0-alpha.2,我們可能必須等待穩定版本。

在此之前,由於問題和錯誤與iss索賠相關,因此從required_claims中刪除iss要求並生成不帶它的令牌可以暫時解決問題。