Я пытаюсь создать страницу регистрации учетной записи с CakePHP 2.0
, где пользователю необходимо активировать свою новую учетную запись, нажав на ссылку в электронном письме, которое он получил после вставки username
, email
и password
.
У меня вопрос, как я могу установить код активации внутри записи пользователя.
Я подумал создать поле таблицы с именем activation_code
, а затем сохранить hashed
версию username
чтобы убедиться, что пользователь может активировать себя, нажав на ссылку электронной почты с ключом активации.
Вся процедура выполнена, но я не знаю, как установить activation_code
внутри объекта $data['User']
и для меня не ясно, является ли это хорошим использованием инфраструктуры MVC, или я должен сделать это по-другому.
Во время действия по регистрации пользователя я сделал это, но при попытке получить сообщение об ошибкедля динамического создания кода активации:
// from the UserController class
public function register () {
if (!empty($this->data)) {
if ($this->data['User']['password'] == $this->data['User']['confirm_password']) {
// here is where I get the error
$this->data['User']['activation_key'] = AuthComponent::password($this->data['User']['email']);
$this->User->create();
if ($this->User->save($this->data)) {
// private method
$this->registrationEmail ($this->data['User']['email'], $this->data['User']['username']);
$this->redirect(array('controller'=>'users', 'action'=>'registration', 'success'));
}
}
}
}
Очевидно, activation_key
- это пустое поле в моей базе данных.
Так как я могу динамически создать файл из контроллера?