easyAuth [1.0.0-beta]
Приветствую, наше уважаемое сообщество.
Начал разгребать завалы старых разработок и откопал интересный компонент для авторизации пользователей.
Компонент дает возможность авторизации по открытым паролям (кодам доступа), которые создаются администратором.
Изначально компонент был разработан для платного доступа к видео-трансляции на сайте — администратор генерировал пароли, которые рассылались по почте с ограничением времени доступа.
Сейчас пришли в голову такие вот примеры использования:
Есть некоторые поля для пользовательской информации.
Изначально планировалось сделать привязку «открытых паролей» к пользователям MODX, даже были сделаны поля в таблицах для этого, но на текущий момент такой привязки нет.
Демка фронта: easyauth.vo-it.ru/index.php?id=2
Обратите внимание, для фиксации времени пребывания и отключения пользователя в нужный момент, каждые 10 секунд компонент шлет ajax-запрос к серверу (когда пользователь авторизован). Таким образом, немного модифицировав код, можно, например, разлогинить всех пользователей сразу. :)
Использование компонента очень простое, достаточно вызывать сниппет isLoggedIn, который принимает 2 чанка — чанк формы авторизации и чанк с закрытым контентом.
Компонент в modstore, цена 490 рублей.
P.S. для тех, кто будет говорить, что хранить пароль в открытом виде плохо — это не пароли, это «коды доступа» =)
Начал разгребать завалы старых разработок и откопал интересный компонент для авторизации пользователей.
Компонент дает возможность авторизации по открытым паролям (кодам доступа), которые создаются администратором.
Изначально компонент был разработан для платного доступа к видео-трансляции на сайте — администратор генерировал пароли, которые рассылались по почте с ограничением времени доступа.
Сейчас пришли в голову такие вот примеры использования:
- Доступ к видеоконференции
- Временный доступ к материалам для скачивания
- Доступ к закрытому разделу с документами
- Ограничивать доступ по дате
- Ограничивать доступ по «количеству входов»
- Ограничивать доступ по количество времени, проведенном в «закрытом разделе»
- Администратор в любой момент может заблокировать пользователя и его «выбросит» в течении 10 секунд
Есть некоторые поля для пользовательской информации.
Изначально планировалось сделать привязку «открытых паролей» к пользователям MODX, даже были сделаны поля в таблицах для этого, но на текущий момент такой привязки нет.
Демка фронта: easyauth.vo-it.ru/index.php?id=2
Обратите внимание, для фиксации времени пребывания и отключения пользователя в нужный момент, каждые 10 секунд компонент шлет ajax-запрос к серверу (когда пользователь авторизован). Таким образом, немного модифицировав код, можно, например, разлогинить всех пользователей сразу. :)
Использование компонента очень простое, достаточно вызывать сниппет isLoggedIn, который принимает 2 чанка — чанк формы авторизации и чанк с закрытым контентом.
Компонент в modstore, цена 490 рублей.
P.S. для тех, кто будет говорить, что хранить пароль в открытом виде плохо — это не пароли, это «коды доступа» =)
Комментарии: 12
Обратите внимание, для фиксации времени пребывания и отключения пользователя в нужный момент, каждые 10 секунд компонент шлет ajax-запрос к серверу (когда пользователь авторизован).Мне кажется, что правильнее просто ставить флаг в БД и выкидывать юзера при следующей загрузке страницы.
Это тоже делается, но время в любом случае, надо же как то считать время в онлайне)
Тогда да, согласен.
Товарищи, подскажите, как реализовать вывод контента (ресурсы в Коллекциях) на страницу (одна единственная, контент меняется) при входе определенного пользователя.
Например, есть коллекция ресурсов Иванов Иван — список статей, при авторизации выводятся именно ресурсы, привязанные к авторизующемуся пользователю?
Например, есть коллекция ресурсов Иванов Иван — список статей, при авторизации выводятся именно ресурсы, привязанные к авторизующемуся пользователю?
Вы не могли бы показать пример создание пользователя без админки и получение данных о достигнутых лимитах?
API наверное какой-то есть?
API наверное какой-то есть?
Демо не работает
Каким образом реализовать скрытие части контента странички?
Имеется ввиду если пользователь не авторизирован часть контента по хайдом.
Такое решение используем на форумах тегами [[hide]]
Имеется ввиду если пользователь не авторизирован часть контента по хайдом.
Такое решение используем на форумах тегами [[hide]]
на вордпресе такое решение
<?php if ( is_user_logged_in() ) {
echo "Содержание для зарегистрированных пользователей"; }
else {
echo "Чтобы увидеть текст, Вам нужно авторизоваться"; } ?>
а как с MODX
Если на родном парсере MODX, то:
[[!+modx.user.id:isloggedin:is=`1`:then=`Содержание для зарегистрированных пользователей`:else=`Чтобы увидеть текст, Вам нужно авторизоваться`]]
Если на парсере Fenom, то:{if '' | isloggedin}Содержание для зарегистрированных пользователей{else}Чтобы увидеть текст, Вам нужно авторизоваться{/if}
Или используя этот пакет: modx.com/extras/package/personalize (кстати, в нём можно увидеть и php-код, которые это делает.
Можно ограничить доступ к группе ресурсов или к категории и всем вложенным ресурсам? Если да то надо будет добавлять каждый созданный ресурс в эту группу или можно как то наладить все автоматически?
Нет, нельзя. Компонент не для этого предназначен.
Спасибо за компонент! Внезапно пригодился и дико выручил. Заказчик в восторге.
От себя хочу поделиться тем, как я привязал компонент к шаблонизатору Fenom.
Нужно было закрыть сайт целиком от посторонних глаз, а значит, закрыть вообще все страницы. Вставлять на каждый шаблон вызов сниппета и подставлять шаблон если авторизовались, или форму с авторизацией, если нет — очень топорное решение, подумал и запилил такой сниппет:
От себя хочу поделиться тем, как я привязал компонент к шаблонизатору Fenom.
Нужно было закрыть сайт целиком от посторонних глаз, а значит, закрыть вообще все страницы. Вставлять на каждый шаблон вызов сниппета и подставлять шаблон если авторизовались, или форму с авторизацией, если нет — очень топорное решение, подумал и запилил такой сниппет:
<?php
/** @var array $scriptProperties */
/** @var easyAuth $easyAuth */
if (!$easyAuth = $modx->getService('easyauth', 'easyAuth', $modx->getOption('easyauth_core_path', null, $modx->getOption('core_path') . 'components/easyauth/') . 'model/easyauth/', $scriptProperties)) {
return 'Could not load easyAuth class!';
}
$easyAuth->loadJsCss();
if ($easyAuth->authIsLoggedIn()||$modx->user->isAuthenticated('mgr')) {
$res = true;
} else {
$res = false;
}
return $res;
А в шаблоне base, от которого наследуются все остальные, прописал следующее:{var $logged = $_modx->runSnippet('!isLoggedInBoolean')}
{if !$logged?}
{include 'tpl.easyAuth.authForm'}
{else}
{block 'content'}
//тут контент сайта.
{/block}
{/if}
Получилось, вроде бы, очень даже ничего.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.