CakePHP 2 - ручной вход, не добавляемый в сеанс

Я новичок в CakePHP и пытаюсь раздобыть регистрацию/логин, я использую cakephp 2.0

Если я создаю пользователя, используя функцию контроллера регистров, а затем логически подключаюсь к сеансу ( $ this-Auth-user() ) содержит все значения модели, которые я ожидаю.

If i follow the cakephp 2.0 book example and manually login during the register then I do get logged in but $this->Auth->user() only contains the fields from the register form not the User Model. (ie. its missing my Model fields "created", "full name" etc but includes "password" and "passwordconfirm" both unencrypted)

Я что-то пропустил?

Вход Действие:

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

Зарегистрировать действие (с автоматическим логином):

public function register(){
    if($this->request->is('post')){
        $this->User->create();
        if($this->User->save($this->request->data)){

            //Login automatically
            if($this->Auth->login($this->data['User'])){

                $this->Session->setFlash(__('Welcome to Test Site.'), 'default', array(), 'auth');
                return $this->redirect($this->Auth->redirect());

            } else {
                $this->Session->setFlash(__('Failed to login with new account.'), 'default', array(), 'auth');
                $this->redirect(array('action' => 'login'));
            }
        } else {
            $this->Session->setFlash(__('The user could not be saved. Please, try again.'));
        }
    }
}

Просмотр Register.ctp

<?php
echo $this->Form->create('User', array('action' => 'register'));
echo $this->Form->input('username');
echo $this->Form->input('password', array('label' => 'Password'));
echo $this->Form->input('passwordconfirm', array('label' => 'Confirm Password', 'type' => 'password'));
echo $this->Form->input('email', array('label' => 'Email (optional)'));
echo $this->Form->end('Join');
?>

Приветствия за любую помощь ребята извиняются, что это немного долго!


РЕДАКТИРОВАТЬ:

Found a workaround! Looks like $this->Auth->login($this->data['User']) was failing to AuthComponent::identify() my User so i changed it for the following 3 lines:

$LoggedInID = $this->User->field('id', array('username' => $this->Auth->user('username')));
$user = $this->User->read(null, $LoggedInID);
$this->Auth->login($user);

и это работает.

РЕДАКТИРОВАТЬ: You can also just use the return value of save():

        if($user = $this->User->save($this->request->data)){

            //Login automatically
            if($this->Auth->login($user)){
3

2 ответы

Попробуйте изменить

if($this->Auth->login($this->data['User'])){

в

if($this->Auth->login()){
1
добавлено

Я решил это, изменив значение «session.cookie_domain» на мое доменное имя в PHP.ini.

session.cookie_domain = my.domain.com

Теперь он работает отлично.

Настройки сеанса core.php следующие

Configure::write('Session', array(
    'defaults' => 'php'     
));
0
добавлено
phpGeeks
phpGeeks
3 620 участник(ов)

Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

PHP
PHP
1 309 участник(ов)

Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
1 251 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

phpGeeksJunior
phpGeeksJunior
980 участник(ов)

Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

phpclub.ru
phpclub.ru
872 участник(ов)

Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

Devall | PHP
Devall | PHP
272 участник(ов)

Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp