বর্তমান ব্যবহারকারী প্রমাণিত কিনা তা নির্ধারণ করা

Determining If Current User Is Authenticated



সমস্যা

আপনি দেখতে চান যে কোনও ব্যবহারকারী লগ ইন করেছেন কিনা।

আপনি জানেন লারাভেল স্বয়ংক্রিয়ভাবে সেশনে অনুমোদিত ব্যবহারকারীকে রাখে। আপনি বর্তমান অনুরোধটি ব্যবহারকারীর লগ ইন এবং প্রমাণিত কিনা তা পরীক্ষা করতে চান।







সমাধান

ব্যবহার করুন | _+_ |।



| _+_ | পদ্ধতি সত্য বা মিথ্যা প্রদান করে।



যদি (Auth::চেক())
{
বের করে দিল 'হ্যাঁ! আপনি লগ ইন করেছেন। ';
}

আলোচনা

আপনি যখন এটি করেন তখন পর্দার আড়ালে বেশ কিছু ঘটনা ঘটে।





প্রথম লারাভেল চেক করে যে বর্তমান সেশনে কোনো ব্যবহারকারীর আইডি আছে কিনা। যদি তাই হয়, তাহলে ব্যবহারকারীকে ডাটাবেস থেকে পুনরুদ্ধার করার চেষ্টা করা হয়।

যদি এটি ব্যর্থ হয়, তাহলে লারাভেল আমাকে মনে রাখবেন কুকি পরীক্ষা করে। যদি এটি উপস্থিত থাকে তবে আবার ডাটাবেস থেকে ব্যবহারকারীকে পুনরুদ্ধার করার চেষ্টা করা হয়।



শুধুমাত্র যদি একটি বৈধ ব্যবহারকারী ডাটাবেস থেকে উদ্ধার করা হয় তবে সত্যিকারের ফেরত দেওয়া হয়।

'অতিথি' ফিল্টার এই পদ্ধতি ব্যবহার করে
Laravel অতিথি ফিল্টারের একটি ডিফল্ট বাস্তবায়ন প্রদান করে | _+_ |।

রুট::ছাঁকনি('অতিথি', ফাংশন()
{
যদি (Auth::চেক()) প্রত্যাবর্তনপুনirectনির্দেশ::প্রতি('/');
});

এই ডিফল্ট বাস্তবায়নটি ব্যবহার করা হয় যখন আপনি একটি রুটে ফিল্টার যোগ করতে চান যা শুধুমাত্র অতিথিদের দ্বারা প্রবেশযোগ্য (ওরফে ব্যবহারকারীরা যারা লগ ইন করেনি)। যদি কোনও ব্যবহারকারী লগ ইন করে থাকেন তবে তাদের হোম পেজে পুন redনির্দেশিত করা হয়।