यह निर्धारित करना कि क्या वर्तमान उपयोगकर्ता प्रमाणित है

Determining If Current User Is Authenticated



संकट

आप देखना चाहते हैं कि कोई उपयोगकर्ता लॉग इन है या नहीं।

आप जानते हैं कि लारवेल स्वचालित रूप से प्रमाणित उपयोगकर्ता को सत्र में रखता है। आप जांचना चाहते हैं कि क्या वर्तमान अनुरोध में उपयोगकर्ता ने लॉग इन किया है और प्रमाणित किया है।







समाधान

|_+_| का प्रयोग करें।



|_+_| विधि सही या गलत लौटाती है।



अगर (प्रमाणीकरण::जाँच())
{
फेंक दिया 'वाह! आप लॉग इन हैं।';
}

विचार - विमर्श

जब आप ऐसा करते हैं तो परदे के पीछे कई चीजें होती हैं।





पहले Laravel जाँचता है कि वर्तमान सत्र में उपयोगकर्ता की आईडी है या नहीं। यदि ऐसा है, तो उपयोगकर्ता को डेटाबेस से पुनर्प्राप्त करने का प्रयास किया जाता है।

यदि वह विफल रहता है, तो Laravel मुझे याद रखने वाली कुकी के लिए जाँच करता है। यदि वह मौजूद है तो एक बार फिर डेटाबेस से उपयोगकर्ता को पुनः प्राप्त करने का प्रयास किया जाता है।



केवल तभी जब एक वैध उपयोगकर्ता को डेटाबेस से पुनर्प्राप्त किया जाता है, तो वह सही होता है।

'अतिथि' फ़िल्टर इस पद्धति का उपयोग करता है
Laravel |_+_| में अतिथि फ़िल्टर का डिफ़ॉल्ट कार्यान्वयन प्रदान करता है।

मार्ग::फिल्टर('अतिथि', समारोह()
{
अगर (प्रमाणीकरण::जाँच()) वापसीपुनर्निर्देशन::प्रति('/');
});

इस डिफ़ॉल्ट कार्यान्वयन का उपयोग तब किया जाता है जब आप किसी ऐसे मार्ग में फ़िल्टर जोड़ना चाहते हैं जो केवल मेहमानों (उर्फ उपयोगकर्ता जो लॉग इन नहीं हैं) द्वारा पहुंच योग्य है। यदि कोई उपयोगकर्ता लॉग इन है तो उन्हें होम पेज पर रीडायरेक्ट कर दिया जाता है।