try-catch是否足以验证JWT?

时间:2018-04-18 12:14:29

标签: php try-catch jwt

我正在使用firebase / php-jwt库对JWT进行编码和解码,并使用try / catch来处理无效签名,过期令牌以及各种其他异常,如下面的代码所示。

try {
    $decoded = JWT::decode($jwt, $secret_key, array('HS256')); 

    // do something

} catch (Exception $e) {
    echo 'Error: ',  $e->getMessage(), ". Please login again.";  
}

我想知道的是,单独使用try-catch(特别是使用firebase / php-jwt库)是否足以验证JWT令牌? firebase / php-jwt库能够处理各种异常,例如无效签名,过期令牌等,所以我需要添加一些额外的代码来验证jwt吗?如果有,怎么样?如果不是,为什么不呢?

1 个答案:

答案 0 :(得分:1)

回答你的问题

  

是否足以验证JWT令牌?

是的,只要您以正确的方式使用它,即您提供所需的所有有效参数,其中包括keytoken并写出正确的// do something

示例:

try {
    $key = "secret";
    $token = "abc"
    $data = JWT::decode($token, $key, array('HS256')); 
} catch (\Exception $e) { // Also tried JwtException
    echo 'error', ". Please login again.";  
}