Авторизация пользователя в standalone-скрипте
Материал из Umicms
Версия от 09:51, 5 декабря 2018; Aposio (обсуждение | вклад) (Новая страница: «'''Актуально для версии 19.''' <h4>Проблема</h4> При запуске standalone-скриптов, будучи авторизован…»)
Актуально для версии 19.
Проблема
При запуске standalone-скриптов, будучи авторизованным в системе у пользователя могут отсутствовать некоторые права и возможности. Это связано с тем, что при выполнении скрипта его id определяется как гостевой.
Задача
Необходимо выполнить авторизацию пользователя из самого standalone-скрипта.
Решение
Создадим простой скрипт и реализуем в нем авторизацию
<?php
header('Content-Type: text/html; charset=utf-8');
include './standalone.php';
$auth = \UmiCms\Service::Auth();
var_export($auth->getUserId()); // Сейчас id определяется как гостевой
$auth->loginByEnvironment(); // Авторизует пользователя на основе данных HTTP запроса и сессии
var_export($auth->getUserId()); // Теперь id определяется корректно
Данный механизм авторизации работает только если пользователь авторизован в системе.