编辑:@Wolffc 的答案是完全正确的——我的返回值是错误的,所以问题出在椅子和屏幕之间。
TYPO3 10.4.8
我正在使用 <f:link.action> 在邮件中生成一个链接,以验证对课程的订阅。
它不能被缓存,所以我可以检查链接是否已经被点击,但是链接中添加了一个 cHash。
<f:link.action
action="validate"
pluginName="Coursevalidation"
extensionName="myextension"
controller="Course"
pageUid="1"
absolute="1"
pageType="1921"
noCache="1"
noCacheHash="1"
arguments="{validationHash: subscription.validationHash, course:course, subscription:subscription}"
>Link</f:link.action>
文档说不应该使用 noCache 和 noCacheHash (“你不应该需要这个”),如果我添加它没有区别。
PageType 未缓存,1921.config.no_cache = 1
生成的链接导致(换行符以获得更好的可读性):
https://mydomain.ddev.site/email-validation
?no_cache=1
&tx_myextension_coursevalidation%5Baction%5D=validate
&tx_myextension_coursevalidation%5Bcontroller%5D=Course
&tx_myextension_coursevalidation%5Bcourse%5D=3
&tx_myextension_coursevalidation%5Bsubscription%5D=30
&tx_myextension_coursevalidation%5BvalidationHash%5D=40e83[...thats long ;)...]0d65c
&cHash=5d7688ac4f04a2d31a98f2cffb792e51
如您所见,有一个 cHash。首先点击链接会触发我的机制来检查所有内容并将订阅设置为有效,然后重定向到“成功”页面,它应该做什么。
第二次点击也会打开成功页面,但应该有“已经验证”的消息。当我调用没有 cHash 的链接时,该页面已打开。
为什么要添加 cHash,如何删除?
谢谢 :)