如何解决有效载荷到期后不再经过验证
我有一个自定义的JWT有效负载,其中2fa =>完成。
当我必须刷新(使用刷新令牌)时,我想从Cookie的过期jwt令牌中复制2fa,如下所示:
$LoadedJWS = $JWSProviderInterface->load($jwtCookieString);
现在看来,有效负载本身已不再得到验证。我当然仍然可以阅读它,但是它未经验证,因此变得毫无用处。
当我查看代码(Services / JWSProvider / LcobucciJWSProvider.php)时,我看到了:
private function verify(Token $jwt){
if (!$jwt->validate(new ValidationData(time() + $this->clockSkew))) {
return false;
}
if ($this->signer instanceof Hmac) {
return $jwt->verify($this->signer,$this->keyLoader->loadKey(RawKeyLoader::TYPE_PRIVATE));
}
return $jwt->verify($this->signer,$this->keyLoader->loadKey(RawKeyLoader::TYPE_PUBLIC));
}
当有效载荷到期时,看起来又不检查签名了。
我还篡改了cookie,这证实了我对有效载荷不再经过验证的怀疑。 (篡改未过期的Cookie会导致即时错误,这是我所期望的)
现在我的问题是:这项工作是否“按设计”进行?
这对我来说很糟糕,因为当我想将有效负载传递给新的JWT令牌时,我再也无法信任有效负载了。
提前谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。