LenAuth for Moodle — легкая авторизация через OAuth социальных сетей

Упростите жизнь своим студентам и себе. Заходите в Moodle без ввода пароля, через социальную сеть.

На сегодняшний день у большинства людей, а тем более студентов есть свои профили в различных социальных сетях. Таких социальных сетей не так уж и много, и мы постарались сделать интеграцию с большинством из них, как международных, так и российских.

Данный плагин для Moodle позволяет Вам очень просто добавить способ авторизации (вход в систему или автоматическая регистрация и вход при несуществующем аккаунте) через открытый протокол авторизации OAuth социальных сетей (у каждой социальной сети он настраивается отдельно): Фейсбук, Google, Yahoo, Twitter, ВКонтакте, Яндекс, Mail.ru.

Пусть данные Ваших студентов автоматически считываются из социальных сетей. Просто создайте OAuth приложения в крупнейших социальных сетях, настройте их в LenAuth, выберите шаблон оформления кнопок и вставьте код в шаблон своего Moodle.

Официальный репозиторий Moodle с плагином

Логотип плагина LenAuth

Летом 2014 года нашей командой был разработан данный плагин. Модуль абсолютно бесплатный!

Плагины LMS-Tech в репозитории Moodle

Скачивайте плагин на ГитХабе

Преимущества LenAuth

Возможности плагина, его преимущества как для администратора Moodle так и для пользователя

Бесплатно

Установите Open-Source модуль и пользуйтесь, не все в мире измеряется деньгами, нужно что-то делать полезное для людей

Простая установка

Разархивируйте файлы плагина в папку /auth/lenauth/ или воспользуйтесь встроенным в Moodle установщиком плагинов

Подробное описание

На данной странице приведены подробные инструкции со скриншотами

Русификация

Так как мы живем в России, плагин имеет как минимум две локализации: русскую и английскую

Выгрузка аватара

Опция для автоматической выгрузки аватара из социального профиля в профиль Moodle

Текст у кнопки

Если шаблон вывода позволяет вывести свой текст в кнопках/ссылках, то можете написать там свой текст, например, "Зайти через ВКонтакте" итп

Выключение сервисов

Если Вам не нужны та или иная социальная сеть (например Yahoo в России непопулярен), то можете выключить его

Шаблоны вывода

Выбирайте понравившийся шаблон вывода кнопок

Гибкие настройки

Полная сборка core авторизации в Moodle

Локализация лого

Яндекс и ВКонтакте имеют как российские логотипы, так и международные, Вы сможете настроить локализацию вывода данных логотипов

Порядок вывода

Вы можете сами формировать порядок вывода кнопок/ссылок авторизации

OAuth1 и OAuth2 Yahoo

Если Ваше приложение Yahoo все еще использует OAuth1, Вы можете включить поддержку данной версии протокола, также Вы можете использовать новый протокол OAuth2

Принцип работы/как работает LenAuth

Настройте дополнительные поля профиля пользователей для более корректной работы некоторых соцсетей

Для начала, чтобы Вы понимали в чем дело, стоит расписать принцип работы OAuth-авторизации в приложениях. Она довольно простая:

  1. Регистрация приложения в соответствующей соцсети
  2. Получение специальных ключей (хеш-строки вида dfs78dgksnvm6s99s......)
  3. Построение специального запроса с использованием соответствующих ключей к соответствующему веб-сервису соцсети по протоколу OAuth
  4. Получение токенов и их валидация
  5. Получение информации (ответа) от вебсервиса соцсети в специальном виде (имя, фамилия, дата рождения, id в соответствующей соцсети, пол, e-mail итп)

LenAuth выстраивает запросы и разбирает ответы от вебсервисов, казалось бы все просто. Но не совсем. Правила веб-сервисов некоторых соцсетей запрещеют возвращать e-mail, ФИО, а ведь именно по ним мы определяем есть ли профиль данного студента в базе Вашей Moodle.

НО! Все веб-сервисы возвращают id пользователя в соцсети, поэтому для более корректной работы плагина необходимо поставить соответствия дополнительных полей профиля студента с соответствующими полями в LenAuth, чтобы он записывал эти id в базу данных и уже по ним определял уникальность пользователя. Плагин делает это автоматически.

Установка и настройка плагина LenAuth

Подробные шаги по установке плагина на Ваш Moodle

Требования: корректно работающий Moodle 2.6.5+

Ссылка на скачивание: LenAuth 1.2.4 (Официальный репозиторий плагинов Moodle)

Загрузка плагина по FTP

Скачайте плагин с официального репозитория плагинов Moodle. Залейте по FTP (например, с помощью программы FileZilla) папку lenauth в папку auth Вашего сайта Moodle.

FTP в Moodle

Активация плагина в Moodle

Moodle имеет встроенную проверку новых модулей, так что когда Вы загрузите по FTP новый плагин, система автоматически предложит его активировать.

Активация нового плагина

Включение в настройках

В виджете Настройки выберите Администрирование → Плагины → Аутентификация → Настройки аутентификации.

Включение LenAuth

Включение в настройках

В данном разделе предоставлен список всех доступных способов аутентификации в Moodle, в том числе и LenAuth, но по-умолчанию он выключен, его надо включить.

включение LenAuth

Настройка

После того как Вы включите плагин в настройках он появится у Вас в меню Администрирование → Плагины → Аутентификация → LenAuth.

Активация нового плагина

Начните настраивать LenAuth

После установки, активации и включения плагина Вы можете настраивать его. Но прежде всего, Вам необходимо создать OAuth-приложения, как это сделать описано ниже.

Настройка

Настройка OAuth приложений

Описания как создать приложения

Фейсбук — крупнейшая социальная сеть в мире, суточная аудитория сети около 700 миллионов пользователей со всего мира, а число пользователей 1,3 миллиарда человек.

У Вас должен быть зарегистрирован аккаунт в Facebook.

  1. Зарегистрируйтесь как разработчик Facebook. Процедура ни к чему Вас не обязывает, это правило Facebook для создания OAuth-приложений. После регистрации Вам станет доступна консоль разработчика.
  2. Платформа (тип) приложения — выберите Веб-сайт
  3. Во всплывающем окне заполните Display Name (название), Категория (например, Образование), остальное не трогайте, нажмите Create App ID
Регистрация OAuth приложения Facebook для LenAuth
Тип OAuth приложения Facebook Веб-сайт
Настройка OAuth-приложения

Вывод кнопок на сайт Moodle

Как вывести готовый шаблон кнопок на Ваш сайт Moodle

Чтобы вывести ссылки/кнопки на которые будут нажимать студенты для авторизации, Вам необходимо править код Вашего текущего шаблона в Moodle.

Как узнать название текущего шаблона Moodle? Для этого Вам необходимо перейти в раздел НАСТРОЙКИ → Администрирование → Внешний вид → Темы → Выбор темы (или же название темы будет в том же меню после пункта Выбор темы). Если Вы зашли в пункт Выбор темы, то в колонке Информация будет показано имя темы.

Например, имя вашей текущей темы Clean (это базовая тема в Moodle 2.7.2, основанная на CSS-фреймворке Bootstrap), тогда Ваша рабочая папка на FTP Мудла это /theme/clean(в случае если текущая тема это clean)/layout. Внутри папки layout лежат рабочие php-файлы вывода страниц темы. Обычно файлы вывода могут называться так: frontpage.php, general.php, columns3.php, columns2.php, columns1.php

Код для вставки можно найти в администраторской панели плагина в таблице стилей Настройки визуализации в колонке PHP-код для шаблона. Например, для шаблона вывода кнопок LenAuth style1 необходимо вставить в нужное место код:
<?php if ( file_exists( $CFG->dirroot . '/auth/lenauth/out.php' ) ) : include_once $CFG->dirroot . '/auth/lenauth/out.php'; echo auth_lenauth_out::getInstance()->lenauth_output('smooth-w64-classic-circle'); endif; ?>

Также Вы можете вывести кнопки обычным HTML-кодом. В администраторской панели LenAuth под PHP-кодом для шаблона нажмите на ссылку Статичный HTML, откроется новое окно со статичным HTML-кодом. Обратите внимание на то, что при смене настроек OAuth-приложений, Вам обязательно нужно будет поменять статичный HTML-код.

ВНИМАНИЕ! Некоторые социальные сети имеют разные логотипы для рускоязычных и для англоязычных пользователей, например, у ВКонтакте и Яндекса. По-умолчанию выводятся логотипы для англоязычной (международной) аудитории, чтобы логотипы были в русской локализации, Вам необходимо выбрать в настройках плагина соответствующую локализацию логотипов.

Шаблоны кнопок входа

Здесь представлены все возможные виды кнопок и описание к ним

Плагин предоставляет несколько шаблонов вывода кнопок от просто текстовых ссылок жо красивых кнопок/ссылок с логотипами соответствующих социальных сетей. Их Вы можете увидеть в администраторской панели LenAuth в блоке «Настройки визуализации». В данной таблице, для наглядности, приведены только три ссылки/кнопки: Facebook, Twitter и Яндекс. При этом, их стили в данной таблице уже приведены в соответствии с выбранными Вами параметрами (отступы, ширина если стиль позволяет).

Расширенная настройка

Все что касается необычных настроек плагина

Блок «Общие настройки»

  1. Префикс: У кажого студента, зашедшего через LenAuth есть свой внутренний ID, также у любого пользователя в Moodle должен быть свой username, другими словами Логин для входа, префикс делает логин для пользвателя как (Префикс)+(ID в LenAuth). Данный логин присваивается студенту при регистрации через LenAuth, в дальнейшем он сможет его поменять. Мы советуем оставить префикс логина как lenauth_user_.
  2. Страна по-умолчанию: Не все OAuth-провайдеры социальных сетей возвращают страну проживания пользователя, поэтому если большинство Ваших студентов представляют ту или иную страну, Вы можете выставить по-умолчанию эту страну чтобы она автоматически выставлялась у регистрируемого студента, он сможет поменять ее в любой момент.
  3. Международные логотипы / Российские логотипы: некоторые российские сервисы, у которых есть пользователи помимо рунета имеют международные логотипы, например, Яндекс и ВКонтакте
  4. Пользователь может сбрасывать/менять внутренний пароль : Данная опция крайне важна, так как по-умолчанию, регистрируясь через LenAuth, пользователю не задается никакой пароль и система может впустить его только через LenAuth проверяя его данные в базе данных Moodle. Поэтому если Вы хотите дать пользователям возможность «отвязаться» от входа ТОЛЬКО через LenAuth, и чтобы он смог входить через обычную форму входа по логину и паролю, включите эту опцию.
  5. Модерация новых пользователей: новые пользователи должны будут подтвердить свой email и им придет системное письмо от Moodle со специальной ссылкой, нажав на которую они активируют свою учетную запись.

Блок «Настройки кнопок»

В администраторской панели LenAuth у каждого стиля представлен пример двух кнопок: Facebook и Twitter — это пример расположения (настроенных вами отступов и расположения) и стиля кнопок, Вы сможете примерно увидеть как тот или иной стиль кнопок будет выглядеть на сайте Вашего Moodle.

  1. Расположение кнопок: доступны две опции
    1. В строку: кнопки будут идти друг за другом в ряд
    2. Блочно (друг под другом): Кнопки будут представлены списком друг под другом (иногда на всю ширину области кнопок)
  2. Ширина (0 = авто): ширина каждой кнопки (CSS-свойство width). Применимо не ко всем шаблонам кнопок!;
  3. Отступ сверху (px): отступ сверху для каждой кнопки в пикселях (CSS-свойство margin-top);
  4. Отступ справа (px): отступ справа для каждой кнопки в пикселях (CSS-свойство margin-right);
  5. Отступ снизу (px): отступ снизу для каждой кнопки в пикселях (CSS-свойство margin-bottom);
  6. Отступ слева (px): отступ слева для каждой кнопки в пикселях (CSS-свойство margin-left);

Блок «Настройки области кнопок»

Область кнопок — это невидимая секция/блок (div) с css-классом lenauth-buttons, в которой содержатся кнопки, можно сказать «обертка» кнопок. У него могут быть те же свой свойства что и у кнопок.

  1. Расположение области: доступны две опции
    1. В строку: область кнопок будет иметь строчное свойство, т.е. не будет расплываться на всю ширину родительской области
    2. Блочно (друг под другом): область кнопок будет в обычном состоянии на всю ширину родительской области
  2. Ширина (0 = авто): ширина области кнопок (CSS-свойство width);
  3. Отступ сверху (px): отступ сверху области кнопок в пикселях (CSS-свойство margin-top);
  4. Отступ справа (px): отступ справа области кнопок в пикселях (CSS-свойство margin-right);
  5. Отступ снизу (px): отступ снизу области кнопок в пикселях (CSS-свойство margin-bottom);
  6. Отступ слева (px): отступ слева области кнопок в пикселях (CSS-свойство margin-left);

Настройка с помощью дополнительного CSS Вашей темы

Все кнопки имеют одинаковую HTML-структуру: «область-обертка» (область кнопок, обычно это div) с css-классом lenauth-buttons, внутри него идет список ul без css-классов и элементы списка li, внутри каждого элемента списка идет ссылка a со своим(и) css-классами, внутри ссылки может быть разные элменты, в зависмости от конкретного стиля вывода кнопок. Соответственно, HTML-структура получается вида:

<div class="lenauth-buttons some-additional-classes-if-needed">
    <ul>
        <li>
            <a class="twitter-or-facebook-or-yahoo some-additional-classes-if-needed">some-content</a>
        </li>
        <li>
            <a class="twitter-or-facebook-or-yahoo some-additional-classes-if-needed">some-content</a>
        </li>
        .......
    </ul>
</div>

Если Вам не хватает тех свойств что предлагают настройки LenAuth, Вы можете отредактировать CSS вашей текущей темы в Вашем Moodle. Не забудьте, что в некоторых случаях, возможно, придется воспользоваться дополнительным CSS-параметром !important.

Описание возможных системных ошибок

Не бойтесь системных ошибок, они возможны и имеют свои описания и коды, главное понять в чем произошла проблема

Moodle как и все подобные системы имеет свою систему «отлова исключений» (систему ошибок). Данные ошибки бывают как «нативные» (встроенные в систему и возникающие при работе с ситемой напрямую без плагинов), так и дополнительные, т.е. разработчики плагинов для Moodle предвидят возможные проблемы и, если они случаются, выводят предупреждения об этих ошибках. Текст ошибок приводится на английском языке.

Текст ошибкиОписание ошибки
Service not enabled in your LenAuth SettingsВозникновение данной ошибки маловероятно. Она может появиться только лишь в том случае если вы пытаетесь нажать на кнопку входа через ту или иную социальную сеть, а она отключена в настройках, поэтому данная кнопка не должна показываться. Ошибка сработает в том случае, если продвинутый пользователь подделает GET-параметры ссылки и зайдет по ней.
Unknown OAuth ProviderВозникновение данной ошибки маловероятно. Она может возникнуть в том случае, если продвинутый пользователь отредактирует GET-параметры ссылки входа через LenAuth.
Can not get access for "access_token" or/and "expires" params after requestДанная ошибка может встретиться. Она означает, что по каким-то причинам система не смогла получить access token от вебсервиса, к которому подключается. При возникновении такой ошибки надо проверить все настройки или попробовать подключиться еще раз.
Someting wrong, maybe expiresЧто-то пошло не так. Возможная причина, что записаннай в cookie access token больше не существует, хотя должен. Если у Вас встетилась такая ошибка, пожалуйста, напишите нам по адресу info@lmstech.ru и приложите подробные скриншоты Ваших действий, попробуем разобраться.
Native VK Error some text with description: some textДанная ошибка может означать, что, по какой-то причине, вебсервис ВКонтакте вернул Вам ошибку. Проверьте настройки ВКонтакте в LenAuth.
Mail.RU invalid OAuth settings. Check your Private Key and Secret KeyПроверьте свои настройки сервиса Mail.Ru в LenAuth.
Mail.RU Unknown Error with code: 000Неизвестная ошибка от вебсервиса Mail.Ru с определенным кодом. Посмотрите коды ошибок Mail.Ru для метода users.getInfo
Your social account is not verifiedПри регистрации в той или иной социальной сети пользователь должен подтвердить себя (получить статус verified), вебсервисы возвращают данный параметр и если этот статус отсутствует, то LenAuth запрещает вход и выдает данную ошибку.
Empty Social UIDПо каким-то причинам вебсервис не вернул внутренний ID пользователя. Ошибка маловероятна если Вы верно настроили LenAuth и приложения. Проверьте соответствия настроек Ваших приложений (например, домен в настройках приложений)
Final request returns nothingЗапрос на получение данных пользователя ничего не вернул. Проверьте настройки Ваших OAuth-приложений социальных сетей в LenAuth.
Could not get access to access token. Check your App SettingsЕще одна ошибка по причине пустого значения access token. Проверьте Ваши настройки.
Something wrong with usernames of LenAuth users. Limit of 20 queries is out. Check last mdl_user table of MoodleОшибка маловероятна. Она защищает от продвинутых пользователей, которые смогут сменить username так, чтобы система делала много запросов к базе данных, установлен лимит 20 запросов. Проверьте таблицу mdl_user в базе данных.
Native Google errorНативная ошибка приложения Google. Проверьте соотвтетствие настроек. Попробуйте в разделе APIs & auth → APIs включить Google+ API или в разлеле APIs & auth → Credentials нажать Reset secret для обновления CLIENT SECRET, но не забудьте его обновить в LenAuth.

Ждем обратной связи для взаимовыгодного сотрудничества

Наша работа ориентирована на b2b сегмент. Мы стремимся качественно предоставлять весь спектр услуг, связанный с LMS Moodle, чтобы доходы клиентов и их удовлетворенность нашей работой были максимальными. Если у Вас возникли вопросы или предложения — пишите.

Откроется всплывающее окно

Напишите нам
Технологии программирования Moodle: CSS3, AngularJS, Bootstrap

© 2014–2016, ООО «Вебкор». Все права защищены.