Проблема с программной авторизацией

Аватар пользователя GodZiLA GodZiLA 7 февраля 2019 в 17:22

Всем привет!

Возникла такая проблема.
Пытаюсь авторизовать пользователя по аяксу:

<?php
function logInUser($uid) {
        global 
$user;
        
$user user_load($uid);        
        
        
$login_array = array('name' => $user->name);
        
user_login_finalize($login_array);
    }  
?>

В массив передаю id существующего пользователя.

При вызове через аякс ошибок нет, в журнале появляется "Сессия для user открыта." и пользователь указан user.
Однако, пользователь не авторизован.

Если проделать всё то же самое без аякса (при открытии страницы) - атворизация проходит успешно.

Не могу понять, в чём проблема и почему пользователь не авторизовывается.
Кто-нибудь с таким сталкивался?

Комментарии

Аватар пользователя zvse zvse 7 февраля 2019 в 19:08

что возвращается в ответ на аякс запрос? куки прилетают?
посмотрите вкладку Network в хроме и этот конкретный запрос, чтобы быть уверенным

Аватар пользователя GodZiLA GodZiLA 8 февраля 2019 в 10:10

В данный момент я ничего не возвращаю, но если поставить условие на

user_login_finalize($login_array);

- выдаст false. Куки не приходят, но я зашёл под админом - кук никаких тоже не обнаружил, связаных с авторизацией. Может быть при авторизации принудительно в куку записывать значение?

Аватар пользователя gun_dose gun_dose 7 февраля 2019 в 22:47

В заголовок запроса надо добавить withCredentials: true, иначе куки будут проигнорированы.