Magento2.3忽略Action的Csrf验证

7天成为Magento系统架构师,现在开始学习Magento全栈开发!

《Magento2.X企业级开发实战》

最近在开发一个magento支付接口插件,支付平台需要异步地把支付结果POST到magento网站.原来以为很简单的事情,只需要添加一个控制器,接收POST过来的数据,再修改订单状态即可。

在magento1.9 2.1 2.2 都很顺利地实现了。但magento2.3版本,模拟POST操作的时候一直都自动跳转到了首页,发现是Csrf验证不通过问题。

后来查了官方文档,在2.3版本,所有的控制器都默认了Csrf验证。

知道原因解决起来也简单了,官方也给出了方法,方法如下:

控制器继承接口CsrfAwareActionInterface

class Notify extends MagentoFrameworkAppActionAction implements CsrfAwareActionInterface

实现两个方法 createCsrfValidationExceptionvalidateForCsrf

public function createCsrfValidationException(
    RequestInterface $request
): ?InvalidRequestException {
    return null;
}
public function validateForCsrf(RequestInterface $request): ?bool
{
    // 直接返回通过
    return true;
}

文章来源于互联网:Magento2.3忽略Action的Csrf验证

如无特殊说明或标注,任何个人或组织,复制、转载、采集本站内容请注明:
本文来源于:【Magento中文网】,并添加本文地址链接。
如未按上述操作复制或转载,本站有权追究法律责任。
若本站内容侵犯了原著者的合法权益,可联系我们进行处理。