लॉग इन करते समय केकफ़्पी सीमित लॉगिन स्क्रीन तक पहुंच

मैं नहीं चाहता कि मेरे उपयोगकर्ता लॉग इन पेज पर जा सकें यदि वे लॉग इन हैं। उन्हें लॉगिन करने में सक्षम होने के लिए पहले लॉग आउट करना होगा। यह काफी आसान लगता है, क्या मैं कुछ सही ढंग से समझ नहीं रहा हूं

class UsersController extends AppController {

public function isAuthorized($user) { 

    if( $this->Auth->login() ){ 
        return false;
    } else {
        return true;    
    }

}

public function login() {
    if ($this->request->is('post')) {
        if ($this->Auth->login()) {
            return $this->redirect($this->Auth->redirectUrl());
        } else {
            $this->Session->setFlash(__('Username or password is incorrect'), 'default', array(), 'auth');
        }
    }

}
0

2 उत्तर

पंजीकरण या खोए गए पासवर्ड आदि जैसी गतिविधियां भी हैं।

असल में आप केवल ब्लैकलिस्टेड नियंत्रक/कार्रवाइयों पर जांच करते हैं और अपनी होम स्क्रीन पर रीडायरेक्ट करते हैं या तदनुसार रीडायरेक्ट करते हैं

// Do not allow access to these public actions when already logged in
$allowed = array('Account' => array('login', 'lost_password', 'register'));
foreach ($allowed as $controller => $actions) {
        if ($this->name === $controller && in_array($this->request->action, $actions)) {
                $this->Common->flashMessage('The page you tried to access is not relevant if you are already logged in. Redirected to main page.', 'info');
                return $this->redirect($this->Auth->loginRedirect);
        }
}

See https://github.com/dereuromark/cakefest/blob/master/Controller/AppController.php#L66

1
जोड़ा

मैं लार्वेल का उपयोग करता हूं, और इस तरह की स्थितियों में, मेरा लॉगिन मार्ग फ़िल्टर ed इस तरह है।

Route::get('login', array('before' => 'guest', "uses" => "[email protected]"));

guest is the name of a filter, defined as return !Auth::check();

केकेपीएचपी के लिए, मुझे लगता है कि यह बहुत समान होगा। यदि आपका वर्तमान उपयोगकर्ता प्रमाणीकृत है, तो इस आधार पर कि आप अपने मार्गों को फ़िल्टर कर सकते हैं।

0
जोड़ा