Авторизация пользователя в standalone-скрипте

Материал из Umicms
Перейти к:навигация, поиск

Актуально для версии 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 определяется корректно

Данный механизм авторизации работает только если пользователь авторизован в системе.