2016-08-23 52 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要求并生成不带它的令牌可以暂时解决问题。