phpcakephpcakephp-2.0cakephp-2.1

How to make login with only one field with CakePHP2


I am trying to make a login by getting/authorizing only one input user_number (Not username - password).

I made my current login page with the following way: Cakephp2.x simple login


Solution

  • Keep it simple

    If you only have one way of identifying users, the simplest (and therefore recommended) way to identify users would be to define your own login function. e.g.:

    public function login() {
        if ($this->request->is('post')) {
            $number = $this->request->data['User']['user_number'];
            $user = $this->User->findByUserNumber($number);
            if ($user && $this->Auth->login($user)) {
                return $this->redirect($this->Auth->redirectUrl());
            } else {
                $this->Session->setFlash(__('User %d doesn\'t exist', $number), 'default', array(), 'auth');
            }
        }
    }
    

    Note that this varies very little from the standard way of logging a user in with Cake 2.x