Проблема в том, что функция setUser в usersController возвращает ноль и не регистрирует пользователя.
Запрос к БД получает пользователя, и я могу видеть поля без проблем.Файл сессии в / tmp / session создается нормально, и если мы изменим конфигурацию на php session, а не cake, то создадим это тоже.
Похоже, сессия была создана, но apache или cake не могут прочитатьчто.
Один и тот же код, в разных версиях OS & php работает нормально.
Может быть связано с некоторыми конкретными разрешениями для пользователей www-data / apache?
Мы работаем с Apache2, php 7.3 и подключаемся к SqlServer.
CODE:
//////////////////////////////////////
AppController.php
ini_set(‘allow_url_fopen’, ‘on’);
$this->loadComponent(‘Auth’, [
‘loginRedirect’ => [ ‘controller’ => ‘/’, ‘action’ => ‘home’],
‘logoutRedirect’ => [ ‘controller’ => ‘/’, ‘action’ => ‘login’],
‘authenticate’ => [
‘Form’ => [
‘fields’ => [‘username’ => ‘email’, ‘password’ => ‘password’],
‘userModel’ => ‘Usuarios’
]
],
‘storage’ => [‘className’ => ‘Session’, ‘key’ => ‘Auth.Usuario’],
‘loginAction’ => [ ‘controller’ => ‘/’, ‘action’ => ‘login’],
‘unauthorizedRedirect’ => $this->referer(),
‘authorize’ => ‘Controller’,
‘authError’ => false,
]);
$this->Auth->__set('sessionKey', 'Auth.Usuario');
///////////////////////////////////////
UsuariosController.php
public function login()
{
if($this->request->is(‘post’)){
$usuario = $this->Auth->identify();
if ($usuario) {
if($this->Auth->setUser($usuario)){
$this->Flash->sPublico(__('Ingresaste a tu cuenta.'));
return $this->redirect([
'controller' => 'Pages',
'action' => 'home'
]);
}else{
$this->Flash->ePublico(__('No se pudo acceder a la sesion!.'));
}
else{
$this->Flash->ePublico(__(‘Usuario y/o contraseña incorrectos!.’));
}
}
}
///////////////////////////////////////
$this->Auth->setUser($usuario),is the function that returns false :S
Спасибо!