Поделиться в соцсетях:

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

История создания

Модуль LenAuth разработан был относительно давно для одного из клиентов, все там работало как часы и было понятно что к чему, поэтому писать подробную документацию было излишним. Летом 2014 года было решено внести ряд усовершенствований, подключить некоторые международные социальные сети, имеющие популярность в мире (до этого был Mail.Ru, Google и Facebook). И мы приступили…

Сложности, с которыми мы столкнулись

Посмотрев подобные плагины мы увидели множество разных вебсервисов, к которым налажено OAuth-авторизаций, таких как Linked-in, Windows Live и даже GitHub, действительно, подключение к данным социальным сервисам достаточно несложное, но нужно ли оно, если Ваши студенты это обычные люди, имеющие, как правило, аккаунты в 1-2 популярных, а не специализированных, социальных сетях. При этом, особенностью было то, что мы нигде не нашли авторизации через Yahoo и Twitter, но потом стало понятно почему. Дело в том что у данных социальных сетей достаточно сложная система OAuth-авторизации, отличающаяся от стандартной системы: два редиректа вместо одного и, соответственно, большее количество запросов, в общем, мы возложили на себя ответственность «познакомить» Moodle с методами OAuth-авторизации Yahoo и Twitter. Было сложно, самое сложное было тестирование, когда всплывали все новые и новые ньюансы, но все-таки мы справились. С Twitter были похожие проблемы, что и с Yahoo, но неожиданно, для нас, обнаружилось, что их веб-сервис не возвращает нужной нам информации: имя, фамилию, e-mail, а из полезного возвращает только лишь внутренний Social ID. Тогда мы решили сделать следующее:

Плагин автоматически создает дополнительные поля профиля у пользователей: их столько же, сколько и сервисов, то есть семь штук и каждый привязывается к своей социальной сети и записывает туда значение социального ID своего вебсервиса. Например, вы можете быть авторизованным через Яндекс и авторизовываться через Twitter — система автоматически запишет Ваш ID в Твиттере и не придется вписывать имя, фамилию и e-mail, так как они уже подгрузились из вебсервиса Яндекса.

Процесс загрузки плагина LenAuth

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

  1. Нужно помнить что Moodle, в качестве базы данных, может использовать как MySQL, так и PostgreSQL, соответственно правила запросов немного различаются, на что нам и указали, признаемся, каемся, поправили.
  2. абсолютно все внутренние php-файлы плагинов необходимо защищать от заходов злоумышленников путем специального кода в начале файла defined('MOODLE_INTERNAL') || die();, один файл был незащищен…
  3. Core-программисты Moodle очень любят, когда внутренние переменные (конфиги), функции и классы используют в своем наименовании стиль Frankenstyle. Это необязательное требование, но имейте в виду!
  4. Потом мы сами заметили что обделили пользователей Yandex.com и для них предлагали авторизовываться через российский Yandex.ru
  5. Почти все плагины хранят свои данные в конфигах Moodle в базе данных и их можно предопределить и пересохранять, предопределить их необходимо обязательно.
  6. Чтобы не допустить ошибок, когда плагин был интегрирован, а потом его удалили — добавили в документацию проверку на существование файлов плагина. Сами.
  7. С недавнего времени в функцию get_string() был добавлен третий параметр — передаваемая переменная в строке вывода перевода. В некоторых случаях у нас была объявлена эта переменная явно, как же все быстро меняется.

Полный список изменений Вы можете посмотреть в обновляемом репозитории GitHub. В итоге получился такой вот плагин LenAuth.

Комментарии 4
  • Andew
      

    Я давно не видел настолько подробного описания всех настроек, даже мне человеку не сведующему в настройках открытых приложений все ясно, сделал с первого раза. У Вас все здорово получилось и работает как надо, спасибо за это. Единственный момент — у меня не получилось приконнектиться к Yahoo, у них не создается приложение на обычные IP-адреса, но это у же не в плагине дело. Еще раз спасибо, обязательно напишу что получилось в итоге и покажу свою установку Moodle.

    • LMS Tech
        

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

  • IrinaK
      

    Здравствуйте, Игорь! Спасибо за прекрасный инструмент для авторизации, мелочь а приятно! Наш сисадмин разобрался как регистрировать программы в Фейсбук, Мэйл-ру, Яндексе и вконтакте, но как ПРАВИЛЬНО вставить необходимый код в нужное место, а именно в шапку Мудл? У вас прекрасно расписана страница данной программы, но мы всего лишь простые смертные))) мы вставили и все работает, но не «слетит» ли все что мы делали в один прекрасный момент?

    • LMS Tech
        

      Ирина, добрый день! А какой код Вы вставили: PHP или HTML? Не бойтесь, в любом случае ничего не «слетит», тут главное не испортить верстку сайта, напишите нам на почту адрес, подскажем.

Добавить комментарий для IrinaK Кликните сюда чтобы отменить ответ ×

Ваш e-mail не будет опубликован. Обязательные поля помечены *

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

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

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

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

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