|null */ public static function decode(?string $token): ?array { if (! is_string($token) || $token === '') { return null; } $padded = $token.str_repeat('=', (4 - strlen($token) % 4) % 4); $json = base64_decode(strtr($padded, '-_', '+/'), true); if ($json === false) { return null; } try { $data = json_decode($json, true, 512, JSON_THROW_ON_ERROR); } catch (\JsonException) { return null; } return is_array($data) ? $data : null; } }