введите JWTEncoderInterface на ваш контроллер,
public function __construct(JWTEncoderInterface $jwtEncoder)
{
$this->jwtEncoder = $jwtEncoder;
}
тогда в вашем методе вы можете декодировать токен вот так
try {
$this->jwtEncoder->decode($token);
} catch (JWTDecodeFailureException $ex) {
// if no exception thrown then the token could be used
}
если не сгенерировано исключение, токен может быть использован. знать, что исключение выдается, если
- токен недействителен
- токен истек
- токен не проверен
но если вы хотите точно знать, какая из них произошла, вам следует ввести
JWSProviderInterface к вашему контроллеру
public function __construct(JWSProviderInterface $jwsProvider)
{
$this->jwsProvider = $jwsProvider;
}
и в вашем вызове метода загрузить его действие вот так
try{
$jws = $this->jwsProvider->load($token);
}catch(\Exception $e){
}
if (!$jws->isInvalid()) {
//if token is valid
}
if (!$jws->isExpired()) {
//if token is not expired
}
if ($jws->isVerified()) {
//if token is verified
}