Some previous answer is correct but I am elaborate it.
namespace Equaltrue\Themeoption\Controller\Taxmode;
class Index extends \Magento\Framework\App\Action\Action
{
/**
* @var Validator
*/
protected $formKeyValidator;
/**
* @param \Magento\Framework\App\Action\Context $context
* @param Validator $formKeyValidator
*/
public function __construct(
\Magento\Framework\App\Action\Context $context,
\Magento\Framework\Data\Form\FormKey\Validator $formKeyValidator
)
{
$this->formKeyValidator = $formKeyValidator;
parent::__construct($context);
}
public function execute()
{
if ($this->formKeyValidator->validate($this->getRequest())) {
// form key is validate
}
}
}
Now you may face a problem if you use localhost in user like
URL: http://localhost/magento2/
The Form Key from website & Magento will not match. You can check it from following Magento core file.
vendor/magento/framework/Data/Form/FormKey/Validator.php
Now you have to change localhost to 127.0.0.1 or your IP.