TYPO3和jh_captcha在自己的扩展中



我已经尝试将jh_captcha实现到我自己的扩展中。

我遵循了以下文档:https://docs.typo3.org/p/haffner/jh_captcha/4.0/en-us/Developer/Index.html#add-您的域模型的captcha

但我一直收到这样的错误:在尝试调用时验证失败。。。控制器->showAction((。

如果我删除@validateNotEmpty,它是有效的,但repatcha显然没有经过验证。

我在谷歌上搜索过,发现其他人也有同样的问题,但除了删除notEmpty行外,没有一个解决方案有效。

有什么建议吗?

NotEmpty不是必需的,该值由Ajax验证。

我不会删除整条线,但保留这个:

/**
* @var string
* @Validate("HaffnerJhCaptchaValidationValidatorReCaptchaValidator") 
*/
protected $captchaResponse;

在代码中,这是关键部分:

$apiResponse = json_decode(
GeneralUtility::getUrl($url.'?secret='.$secret.'&response='.$value),
true
);

链接指向googleapi,他们分析传递的值以返回错误代码。基于谷歌错误代码,如果验证失败,扩展代码会在错误中添加一条不同的消息。

因此,我认为captcha是安全的,并怀疑它是否会在没有输入的情况下通过。

编辑:
在您的模型类之上,您必须注意:

use TYPO3CMSExtbaseAnnotationValidate;

此外,TYPO3 v12中还有一个新功能,它将支持自PHP v8以来存在的原生PHP注释。事实上,我不太确定这个功能是否需要TYPO3本身的支持,或者需要多大程度的支持,但不同的验证器类文件包括与它相关的代码。
因此,对于TYPO3 v12,验证注释看起来是这样的:

#[Validate(['validator' => 'HaffnerJhCaptchaValidationValidatorReCaptchaValidator'])]

相关内容

  • 没有找到相关文章

最新更新