मेरे पास यह अजीब चीज है जिसे मैं क्रोम 79 की रिलीज के बाद से समझ नहीं पा रहा हूं।

वेबसाइट पर आप रजिस्टर करें। रजिस्ट्रेशन के बाद आपको भुगतान करना होगा। भुगतान दूसरी साइट पर होता है, बकरू भुगतान प्रदाता है। भुगतान के बाद आपको फिर से हमारी साइट (एक POST अनुरोध के माध्यम से) पर भेज दिया जाएगा। यह वह जगह है जहाँ से मज़ेदार चीज़ें शुरू होती हैं, पहले तो आप साइन इन थे इसलिए आपको अभी भी साइन इन होना चाहिए क्योंकि आप थोड़े समय के लिए दूर रहे हैं। लेकिन ऐसा लगता है कि सत्र की पहचान नहीं हो रही है, इसलिए आपको लॉगिन पृष्ठ से बाहर करने के लिए पुनर्निर्देशित किया जाएगा। लेकिन अगर मैं एक ही रीडायरेक्ट यूआरएल को एक कदम पहले लेता हूं तो यह उम्मीद के मुताबिक काम करता है।

तो ऐसा लगता है कि इसका अन्य डोमेन या किसी चीज़ से रीडायरेक्ट करने से कुछ लेना-देना है?

मैंने कोड में खोज की है, डिबगिंग करते समय मुझे लगता है कि सत्र नहीं मिल रहा है। कोड के इस हिस्से में आखिरी बदलाव एक साल पहले का है, और तब से सही काम कर रहा है। इस तरह मेरे पास इस प्रश्न में कोई कोड उदाहरण नहीं जोड़ा गया है। मैंने क्रोम 79 के रिलीज नोट्स की खोज की है लेकिन अभी भी कोई सुराग नहीं है।

कोई सुराग/विचार आगे कहां देखना है?

-- संपादित करें --

मुझे पता चला कि सत्र आईडी वास्तव में बदलता है ..

मेरी साइट पर, भुगतान विधि का चयन करना (पुष्टि के बाद आपको पुनर्निर्देशित किया जाएगा): HttpContext.Session.SessionID: "qibxyymxhvev231n01ndlkyx"

भुगतान प्रदाता से लौट रहा है: HttpContext.Session.SessionID: "mwkfptaod0hpyuedvaimtqd0"

साइट को फिर से ताज़ा करना: HttpContext.Session.SessionID: "qibxyymxhvev231n01ndlkyx"

4
Willem 20 जिंदा 2020, 18:35
क्या यह बिल्कुल वही यूआरएल है क्या आपको छोटे अंतर दिखाई देते हैं जैसे एक http है और दूसरा https है?
 – 
the_lotus
20 जिंदा 2020, 19:13
यह ठीक वही URL है, अंतर के लिए जाँच की गई लेकिन कोई नहीं मिला।
 – 
Willem
20 जिंदा 2020, 20:56
हाय, एक ही समस्या है। पुनर्निर्देशन पर भुगतान के बाद ग्राहक का सत्र खो जाता है। क्या आपने इस समस्या का समाधान किया? इस मुद्दे के कारण पहले से ही घंटों सिरदर्द हो रहा है... वास्तव में किसी भी मदद की सराहना करें!
 – 
Aleksandra Chuprova
25 मार्च 2020, 16:15
अभी तक इसे ठीक से ठीक नहीं किया गया है, अभी के लिए मैंने अपनी साइट पर एक अतिरिक्त रीडायरेक्ट पेज जोड़ा है जो मूल रूप से रीफ्रेश करता है। उसके बाद sesios फिर से मिल जाता है। अजीब चीजें।
 – 
Willem
1 अप्रैल 2020, 12:38
1
हाय @ विलेम, आपके उत्तर के लिए धन्यवाद। मैंने अपनी समस्या का समाधान कर लिया है। वैसे भी अभी के लिए। मैंने अभी एक उत्तर पोस्ट किया है। मुझे एक लेख मिला है। लोगों ने इसे ASP.NET के लिए लिखा है। तो मैंने सोचा कि यह आपके लिए उपयोगी हो सकता है। इस लेख ने मुझे इस मुद्दे को हल करने में मदद की। समस्या वास्तव में समान है = कोई नहीं और उपयोगकर्ता सत्र कुकी में सुरक्षित झंडे। आपको कामयाबी मिले!
 – 
Aleksandra Chuprova
2 अप्रैल 2020, 19:05

2 जवाब

मैं उसी मुद्दे से जूझ रहा था। मुझे इस पर एक अच्छा लेख मिला। samesite=none कुकीज यह लेख ASP के लिए लिखा गया है। नेट उपयोगकर्ता।

मैं PHP में काम कर रहा हूँ। लेकिन सामान PHP के लिए भी प्रासंगिक है।

केवल वहां आपको अन्य विधियों का उपयोग करना चाहिए। विधियाँ आपके द्वारा उपयोग किए जाने वाले संस्करण php पर भी निर्भर करती हैं - php 7.3 तक आप कुछ इस तरह उपयोग कर सकते हैं:

setcookie('PHPSESSID', $_REQUEST['id'], time() + 60 * 60 * 24 * 1, '/; samesite=None; Secure;');

PHP 7.3 के बाद से आप set_cookie_params() फ़ंक्शन का उपयोग कर सकते हैं;

लेख का एक संक्षिप्त सारांश यह है कि समस्या "samesite=none; Secure;" ध्वज के बिना सेट किए गए उपयोगकर्ता के सत्र के कारण होती है। यह क्रोम संस्करण 80 के बाद से हो रहा है। ध्यान रखें कि क्रोम 80 के लिए समस्या को ठीक करके, आप सेब उपयोगकर्ताओं के लिए अपना आवेदन तोड़ सकते हैं ... इसलिए आपको उपयोगकर्ता एजेंट/ब्राउज़र के लिए एक चेक जोड़ना होगा। आपको उपरोक्त लेख में अधिक जानकारी मिलेगी ...

4
Aleksandra Chuprova 2 अप्रैल 2020, 19:02

एक ही मुद्दे का सामना करना पड़ा। पता चला कि यह माइक्रोसॉफ्ट से संबंधित है।

WebConfig में CookieSameSite="NONE" जोड़ने से शायद आपकी समस्या का समाधान हो जाएगा।

मैंने इसे अपनी कॉन्फ़िगरेशन में जोड़ा और इससे समस्या हल हो गई।

<system.webServer>
  <rewrite>
  <outboundRules>
    <clear />
    <rule name="Add SameSite" preCondition="No SameSite">
      <match serverVariable="RESPONSE_Set_Cookie" pattern=".*" negate="false" />
      <action type="Rewrite" value="{R:0}; SameSite=None" />
      <conditions> </conditions>
    </rule>
    <preConditions>
      <preCondition name="No SameSite">
        <add input="{RESPONSE_Set_Cookie}" pattern="." />
        <add input="{RESPONSE_Set_Cookie}" pattern="; SameSite=None" negate="true" />
      </preCondition>
    </preConditions>
  </outboundRules>
</rewrite>
4
Shehroz Ahmed 12 फरवरी 2020, 15:22