Регистрация

Сначала в базе данных надо создать таблицу с пользователями:

CREATE TABLE users (
    id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(100) NOT NULL UNIQUE,
    password VARCHAR(255),
    email VARCHAR(100),
    created DATETIME,
    modified DATETIME
) ENGINE=INNODB;

Затем надо создать файлы для таблицы users.

В файле app/Model/User.php надо прописать код, чтобы шифровать пароли пользователей перед сохранением в базу данных:

App::uses('AuthComponent', 'Controller/Component');

class User extends AppModel {

    public function beforeSave($options = array()) {

        // шифрование пароля
        if (isset($this->data[$this->alias]['password'])) {
            $this->data[$this->alias]['password'] = AuthComponent::password($this->data[$this->alias]['password']);
        }
        return true;

    }

}

В контроллере набрать следующий код, который позволит открывать указанные страницы (экшены) всем посетителям сайта, иначе откроется страница авторизации, например example.com/users/login.

public $components = ['Auth'];

public function beforeFilter() {
    parent::beforeFilter();

    /* разрешённые страницы текущего контроллера, если пользователь не авторизован */
    $this->Auth->allow('index', 'view');

}

В шаблоне прописать код ниже, который сгенерирует форму регистрации:

<?= $this->Flash->render('auth');  // сообщения регистрации для CakePHP 2.7 и выше ?>
<?= $this->Session->flash('auth'); // сообщения регистрации до CakePHP 2.7 ?>

<?= $this->Form->create('User'); ?>
    <?= $this->Form->input('username'); ?>
    <?= $this->Form->input('password'); ?>
    <?= $this->Form->input('email'); ?>
<?= $this->Form->end('Sign In'); ?>

Останется сохранить пользователя в файле контроллера.

if ($this->request->is('post')) {
    $this->User->create();

    if ($this->User->save($this->request->data)) {
        $this->Flash->success('Вы успешно зарегистрировались');
        // $this->Session->setFlash() для CakePHP ниже версии 2.7
        $this->redirect($this->Auth->redirectUrl());
    } else {
        $this->Flash->error('Не удалось зарегистрироваться');
        $this->redirect($this->request->here);
    }
}