में HTTP बेसिक एथ के साथ लॉग आउट करना मेरे पास एक उपयोगकर्ता श्रेणी है जिसमें दो प्रकार के उपयोगकर्ता होते हैं और विभिन्न उपयोगकर्ताओं को विभिन्न पृष्ठों पर जाने की अनुमति देना चाहते हैं। यदि यह एक विशेषज्ञ नहीं है, यह लॉग आउट करने और प्रवेश पृष्ठ पर रीडायरेक्ट करेगा:लार्वेल
मैं मार्ग की तरह तो
Route::get('/winners', array('before' => 'isExpert', function()
{
$winners = DB::select('select * from winners');
return View::make('winners.index')->with('winners',$winners);
}));
सोचा यह है के रूप में
Route::filter('isExpert', function()
{
$userIsExpert = 0;
$userIsLoggedIn = Auth::check();
if ($userIsLoggedIn && Auth::user()->role == 'expert') {
$userIsExpert = 1;
}
Log::info('Logged in: ' . $userIsLoggedIn . ' && Expert: ' . $userIsExpert);
if ($userIsExpert == 0)
{
Log::info('should be logging out now.');
Auth::logout();
return Auth::basic();
}
});
इस प्रकार एक फिल्टर बनाया है और। यदि ऐसा है, तो यह बस जारी रहेगा। हालांकि, एथ :: लॉगआउट(); कभी उपयोगकर्ता को लॉग आउट नहीं करता है।
प्रश्न
क्यों प्रमाणन नहीं है :: लॉगआउट() काम कर रहा? मैंने ऐप में कहीं भी इसका लाभ उठाने की कोशिश की है।
चियर्स
'Auth :: मूल()' प्रतिक्रिया वापस करने के बजाय किसी भिन्न मार्ग पर रीडायरेक्ट करने का प्रयास करें। तकनीकी रूप से आपका कोड काम करना चाहिए।लॉगआउट के ठीक से काम करने के बाद आप लॉगआउट के बाद 'डीडी (एथ :: चेक())' भी कोशिश कर सकते हैं। –
ठीक है। रीडायरेक्ट फ़ंक्शन काम करता है, मैं वहां एक दृश्य डाल सकता हूं और यह इसे बंद कर देता है। एथ :: लॉगआउट() ऐप में कहीं भी काम नहीं करता है। कोई विचार क्यों? –