我正在使用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吗?如果有,怎么样?如果不是,为什么不呢?
答案 0 :(得分:1)
回答你的问题
是否足以验证JWT令牌?
是的,只要您以正确的方式使用它,即您提供所需的所有有效参数,其中包括key
,token
并写出正确的// 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.";
}