Kutuz27 16 ноября 2014 1 10
Здравствуйте, посетил меня вопрос о том как устроены пользователи ModX и подумав о том что в самом объекте ModX сетнуть мы можем только одного user , но при ситуации таким образом мульти привязку аккауна реализовать неудатся , я имею ввиду такие примеры как Mail.ru где можно войти с разных ящиков при этом не туда сюда на странице авторизации, а просто добавив свой дополнительный акк к имеющимся.
10 комментариев
Fi1osof1
Fi1osof 16 ноября 2014г в 12:48 #
Если речь о переключении аккаунтов, то здесь особой проблемы нет.
$modx->user = $modx->getObject('modUser', $id);
$modx->user->addSessionContext('web');

То есть при смене вкладок ведь по сути в единицу времени один только пользователь (на один запрос к веб-серверу), это решаемо. А вот несколько пользователей на один запрос к веб-серверу - это никак (хотя если очень надо, то и это можно провернуть местами).
K
Kutuz27 16 ноября 2014г в 17:07 #
По поводу контекстов речи нет здесь все разрабы показали и указали, тоесть ModX на это наточен, я о том к примеру что то типа подмены PHPSESSID на клиенте при запросе, в следствии модкс отвечал как обычно в соответствии с айди сессии , скорее всего эта задача возлагается на клиент т.к подмену SESSID может организовать именно он, JS хранит список аккаунтов юзера (хеши сессий), юзер может из него выбрать от какого отправлять запросы, а сервер все как обычно обрабатывает.
Fi1osof1
Fi1osof 16 ноября 2014г в 17:21 #
Про контексты я вообще ничего не говорил. А про сессии... Меняйте перед отправкой запроса на сервер кукис PHPSESSID еще на стороне браузера и все. Делов-то.
K
Kutuz27 16 ноября 2014г в 17:26 #
Спасибо, это может каким нибудь-образом влиять на безопасность?
Fi1osof1
Fi1osof 16 ноября 2014г в 17:30 #
Нет. То есть не больше, чем это есть в принципе. По большому счету и без всяких этих лишних движений если узнать ID сессии, и подставить в запрос, то будешь авторизован и иметь привилегии текущего пользователя, но так как подбор идентификатора - задача почти нереальная, то париться на этот счет нечего. Пользователю будут известны только те идентификаторы, которые он получил, авторизовываясь по логину и паролю. То есть каждый раз при авторизации, пишите id сессии в сторейдж браузера. А при желании переключиться в другого пользователя просто берете нужный ID и подставляете в куку. Деталей не спрашивайте, это общий механизм, экспериментировать до конечного результата придется вам самостоятельно.
K
Kutuz27 16 ноября 2014г в 17:56 #
вот же мысли сходятся, мы просто удобно продлеваем сессию с использованием клиента, а если сервер по своему мнению сбросил сессию, требуем авторизации и так-далее, все ясно спасибо Николай, детали это уже дело бытовое, свойское,принцип один)) но реализовать такое достаточно просто, при доработке на клиенте.
Fi1osof1
Fi1osof 16 ноября 2014г в 17:58 #
но реализовать такое достаточно просто, при доработке на клиенте.
Так и есть.
Fi1osof1
Fi1osof 16 ноября 2014г в 18:00 #
Для информации: в компоненте shopModx1C тоже используется поддержка сессии просто передачей кукис-значения от 1С-сервера. То есть когда идет первый пробный запрос от 1С с передачей логина и пароля, если авторизация проходит успешно, 1С просто добавляет значение кукиса в запрос и все, проблем нет никаких, MODX корректно инициализирует сессию пользователя при каждом дальнейшем запросе. В общем, тут у вас все должно работать без всяких сложностей.
K
Kutuz27 16 ноября 2014г в 18:09 #
по сути это конкретно ModX даже не касается, копаюсь по Modx где-то полгода и поражаюсь на что он способен в общем, баги конечно есть, но это дело житейское. не понимаю единственно почему система не так популярна по рф нежели эти пафосные Джумлы вордпрессы, это оффтоп конечно.
Fi1osof1
Fi1osof 16 ноября 2014г в 18:13 #
Да не важно все это, что популярно, а что нет. Важно что вы для себя выбираете и что с этим делаете. Мне вообще пофиг на все эти тренды.
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.