संपादित करें: @Wolffc का उत्तर पूरी तरह से सही है - मेरे पास गलत रिटर्न मान था इसलिए समस्या कुर्सी और स्क्रीन के बीच थी।

TYPO3 10.4.8

मैं किसी कोर्स की सदस्यता को मान्य करने के लिए के साथ मेल में एक लिंक जेनरेट कर रहा हूं।

इसे कैश नहीं किया जाना चाहिए, इसलिए मैं जांच सकता हूं कि लिंक पहले से ही क्लिक किया गया है, लेकिन लिंक में एक 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 का उपयोग नहीं किया जाना चाहिए ("आपको इसकी आवश्यकता नहीं होनी चाहिए"), और अगर मैं इसे जोड़ता हूं तो इससे कोई फर्क नहीं पड़ता।

पेज टाइप कैश्ड नहीं है, 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 क्यों जोड़ा गया है और मैं इसे कैसे हटा सकता हूं?

धन्यवाद :)

0
Naderio 26 सितंबर 2020, 21:26

1 उत्तर

सबसे बढ़िया उत्तर

आपको इस क्रिया को uncached ib inext_localconf.php . के रूप में परिभाषित करना होगा

TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin

यदि प्लगइन क्रिया कैश न किया गया है तो टाइपो3 इसे सही ढंग से संभाल लेगा।

CHash अनुरोध मापदंडों पर एक चेकसम है और इसका उपयोग मुख्य रूप से कैशे ब्लोट हमलों को रोकने के लिए किया जाता है। यदि कोई हमलावर यादृच्छिक पैरामीटर सेट उत्पन्न करता है। यदि cHash अमान्य है। परिणाम कैश नहीं किया जाएगा। लेकिन उलटा सच नहीं है। यदि cHash मान्य है तो यह अभी भी हो सकता है कि पृष्ठ के भाग कैश न हों। (या पूरा पृष्ठ भी)

1
Wolffc 26 सितंबर 2020, 23:09