收到承载令牌后验证JWT签名

时间:2020-11-05 10:20:04

标签: php api jwt

我有一个API端点,该端点接受用于授权目的的传入JWT承载令牌。我想在使用它之前先对其进行任何篡改。我可以访问API中的私钥。因此,颁发者和接收者(我的API)都拥有签名签名所用的秘密。

因此,在接收到JWT作为我的API的承载令牌后-如果我可以解析传入的JWT的三个组成部分(标头,正文和签名),并以某种方式检查传入的加密私钥是否与我加密的API相同私钥(即双方签名都匹配)-那么令牌是好的,否则是不好的。

我需要在PHP中执行此操作。我知道为此使用的第三方库,但我不希望所有功能和复杂性-仅检查签名。

这里有一些伪装作为起点:-

if ($this->jwt_token) {
   list($header, $body, $signature) = explode('.', $this->jwt_token);
  
   $data =  $header .'.'. $body;
   $private_key = "secret";
   $hashedData = hash('RSA256', $data, $private_key);

   if($hashedData === $signature){
      // signature verified, token is good
   }else{
      // token has been tampered with
   }
}

另一件事是,我的API本地没有RSA256密码吗?您能否提供一些指导-非图书馆解决方案,或者如果需要的话,就这样吧!

0 个答案:

没有答案