- शिप
- 6 सितंबर 2026 को 12:55 am बजे UTC
- लेखक
- Kamo
- Commit
- f68bcce
आखिरी तरीका एक सदस्य अपने टूल में लाइव कॉल और सब कुछ खो सकता है बिना किसी गलत तरीके से काम किये विंडोज। `authenticatedFetch` ने `window.location.href = '/logout'``` के साथ हर किसी को जवाब दिया - सत्र के लिए कोई जाँच नहीं के साथ, सत्र वास्तव में था समाप्त हुआ। यह सबसे भारी बात यह है कि यह ऐप क्लाइंट से कर सकता है: यह फाड़ देता है दस्तावेज़ नीचे, जो उस में रहने वाले एसआईपी सत्र को समाप्त करता है, और यह हटा देता है रेडिस सत्र को साझा किया गया कि सदस्य के अन्य टैब अभी भी काम कर रहे हैं। 401 है बस एक सर्वर का सबसे आम तरीका "इस अनुरोध को नहीं" कहता है; यह सबूत नहीं है कि सत्र खत्म हो गया है। दो कोड पथ पहले से ही जानते थे कि और यह नहीं था। `sessionMonitor` को टोकन अस्वीकार करने से पहले लगातार दो 401 की आवश्यकता होती है। `SessionManager`'s expiry चेतावनी जांच /api/session/info और बाहर संकेत केवल 404,401 या एक TTL पर शून्य पर, कहा गया आधार पर कि "एक क्षणिक नेटवर्क ब्लिप या 5xx को कभी भी सक्रिय उपयोगकर्ता को साइन आउट नहीं करना चाहिए। यह तीसरा बनाता है उनके साथ सहमत: - एक 401 अब उस ही जांच का उपयोग करते हुए, फिर से निर्देशित होने से पहले पुष्टि करता है। 404, 401 या TTL <=0 का मतलब चला गया और लॉगआउट पहले की तरह चल रहा है। 5xx, एक ऑफ़लाइन जांच, या एक लाइव सत्र का मतलब है कि एंडपॉइंट ने इस एक अनुरोध को अस्वीकार कर दिया, जो है कॉलर को एक साधारण `Unauthorized` विफलता के रूप में सौंपा गया था, बजाय होने के लिए टैब को नष्ट करके जवाब दिया। - कारण के लिए, अपने खुद के कोई टोकन रखने वाले टैब को कभी भी 401 पर हस्ताक्षर नहीं किया जाता है। सत्रमॉनिटर अपनी खुद की शाखा के लिए बाहर निकलता है: यह यहां कभी प्रमाणित नहीं हुआ था, इसलिए इसके 401 का मतलब है "इस टैब में कोई क्रेडेंशियल नहीं", और रीडायरेक्टिंग एक हटा देगा रेडिस सत्र इसके भाई-बहन अभी भी उपयोग कर रहे हैं। - उड़ान के दौरान जांच साझा की जाती है। A page that fires छह प्रमाणित अनुरोध एक बार में छह 401s हो जाता है, और यह एक सवाल है, छह नहीं है। - useEntitlement' `isAbandoned` अभी भी "Session समाप्त हो गया" पढ़ता है और इसलिए अभी भी इसका मतलब है "द दस्तावेज़ छोड़ रहा है"; एक लाइव सत्र 401 अब के माध्यम से गिर जाता है लोडर का साधारण रिट्री और सेल्फ-हील, जो हमेशा होना चाहिए यह हुआ। और कॉल संरक्षण को पिन करें, जो कुछ भी जगह में नहीं रखा गया था: एक SIP सत्र इस दस्तावेज़ में रहता है और सर्वर पर कुछ भी नहीं होता है। यह तो एक टियरडाउन कॉल आउटराइट समाप्त होता है। पांच सतहों के बीच एक कॉल और कि, और हर एक एक बड़ी फ़ाइल के अंदर एक प्रभाव है - पहले की पुष्टि करें, गतिविधि दिल की धड़कन जो टीटीएल को जीवित रखता है जबकि कोई सुन रहा है टंकण के बजाय, pagehide BYE के लिए जब एक फाड़ना किसी भी तरह से अपरिहार्य है, टूल-विंडो करीब वीटो, और अब 401 पुष्टिकरण। LiveCallSurvival.test सभी पांच पिन करें और विफल हो जाता है जब कोई हटाया जाता है (तीन हटाकर सत्यापित)। व्यवहार परीक्षणों के बजाय स्रोत grep, जानबूझकर: vitest.config.t app/lib, app/components, app/patients, app/stores, app/network एकत्र करता है और app/utils — नहीं app/contexts या app/hooks, जहां तीन पाँच रहते हैं। परीक्षण इसके अलावा उन्हें कुछ भी नहीं मिला और कभी नहीं चल रहा है। 456 परीक्षण फ़ाइलें पास; eslint हर फाइल को छूने पर साफ है।.