Модуль для упрощения авторизации пользователей

Разработка модуля сайта, содержащего возможность помочь пользователю с авторизацией на сайте кафедры через имеющийся аккаунт. Каркас для веб-приложений Drupal. Выбор версии языка. Требования, предъявляемые к программному продукту. Описание файлов клиента.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 06.06.2018
Размер файла 4,8 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru//

Размещено на http://www.allbest.ru//

Введение

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

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

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

Сведения об организации

Разработка выпускной квалификационной работы проходила в Сибирском Государственном Университете Телекоммуникаций и Информатики на Кафедре вычислительных систем, который был основан в 1953 году.

Полное наименование Университета на русском языке: федеральное государственное бюджетное образовательное учреждение высшего образования «Сибирский государственный университет телекоммуникаций и информатики».

Сокращенное наименование Университета на английском языке: SibSUTIS.

Университет базируется в городе Новосибирск. Сам по себе город позиционируется как один из основных научных центров России. Является базовым образовательным комплексом Федерального агентства связи в регионе, крупным научным центром по изучению проблем связи и развитию телекоммуникационных технологий.

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

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

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

Взаимодействие на международном уровне является одним из значимых направлений деятельности университета. Международные отношения ведут свой отсчёт с 1961 г., когда НЭИС открыл направления подготовки рабочих кадров для зарубежных стран. В начале 90-х годов в вузе обучалось около 300 иностранных студентов из 16 стран Европы, Азии, Африки и Южной Америки.

Кафедра вычислительных систем (ВС) была создана 24 мая 1999 года (приказом №1/63 по Сибирскому государственному университету телекоммуникаций и информатики), спустя четыре года после организации Факультета информатики и вычислительной техники.

Необходимость открытия Кафедры ВС диктовалась самим временем. Стремительное развитие вычислительной техники в сочетании с процессом постепенного выхода страны из кризиса начала и середины 90-х годов делали свое дело. Промышленные предприятия, научно-исследовательские организации, крупные фирмы Сибири все более нуждались в притоке высококвалифицированных, широко образованных специалистов. В частности, в Новосибирской области и во всем обширном регионе от Урала до Дальнего Востока ощущалась острая потребность в специалистах, владеющих методами параллельной обработки информации и современными вычислительными технологиями. Требовались новые молодые кадры, глубоко разбирающиеся в архитектурах и структурах параллельных вычислительных систем, распределенных операционных системах и системах параллельного программирования, хорошо ориентирующиеся в современных средствах высокопроизводительных вычислений.

Основателем Кафедры ВС и ее первым заведующим был заслуженный деятель науки Российской Федерации член-корреспондент РАН профессор доктор технических наук Виктор Гаврилович Хорошевский (1940-2012). Крупный учёный, педагог с огромным стажем и опытом, Виктор Гаврилович преподавал более 30 лет (с 1975 года в должности профессора). Он является соавтором концепции распределенных вычислительных систем с программируемой структурой, а также одним из ответственных разработчиков первой в мире ВС с программируемой структурой “Минск-222” (1965 г.). Под руководством и при непосредственном участии профессора В.Г. Хорошевского разрабатывались параллельные минимашинные системы: МИНИМАКС (1974 г.) и СУММА (1975 г.), а также семейство мультипроцессорных систем МИКРОС (микроВС: МИКРОС-1, 1986 г.; МИКРОС-2, 1992 г. и МИКРОС-Т, 1996 г.). Им заложены основы теории функционирования большемасштабных распределённых вычислительных систем с программируемой структурой.

С использованием информационной системы поддержки образовательного процесса преподавателям СибГУТИ предоставлена возможность организовать электронное обучение (в случае, если такое обучение предусмотрено соответствующей основной профессиональной образовательной программой) и проводить процедура оценки результатов обучения. Идентификационную информацию, необходимую для доступа к указанной системе, обучающиеся получают в деканате.

Выпускные квалификационные работы размещаются в электронно-библиотечной системе СибГУТИ (с учетом изъятия информации, содержащей коммерческую и (или) интеллектуальную тайну) и на официальном сайте СибГУТИ (в разделе публикации).

В современном мире состояние образования сложно и противоречиво. С одной стороны, в конце ХХ векаобразование становится одной из главных сфер интересов человечества. Колоссальные результаты в данной области вошли в основу грандиозных социальных и научно-технологических преобразований, которые характерны для начавшегося XXI века. С другой стороны, изменение статуса образования и увеличение его сферы чреваты обострениям проблем в этой области, которые напрямую указывают на кризис образования.

В итоге, в ходе поиска путей решения сложившегося кризиса происходят радикальные изменения и создание принципиально новой образовательной системы. Роль образования в жизни общества во многом определяется той значимостью, которой нуждается общественное развитие знания людей, их опыт, умения, навыки, возможности профессионального развития и личностных качеств. Эта роль набирает обороты во второй половине XX века, кардинально изменившись в его последние десятилетия. Информационная революция и формирование нового типа общественного устройства - информационного общества - ставят знание и информацию на главный план социального и экономического развития. Перемены в области образования неразрывно связаны с процессами, происходящими в социально- политической и экономической жизни мирового сообщества.

Сейчас существует огромное количество сайтов и на всех для полного использования функционала сайта необходима авторизация, а если у пользователя нет учетной записи, то необходима регистрация на данном сайте. Поэтому при выполнении выпускной работы была поставлена следующая цель: исследовать аналоги и реализовать модуль для упрощения авторизации пользователей.

Модуль авторизации должен быть, во-первых, хорошо продуманным, не похожим на все остальные модули авторизации. Во-вторых, простота в навигации. Но самое важное - это удобство и простота в использовании.

Постановка задачи

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

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

Используемые языки программирования и ПО

Препроцессор гипертекста PHP

Изначально аббревиатура РНР расшифровывалась как PersonalHomePageTools (Инструменты для создания персональных веб-страниц). Этот язык был создан в 1995 году РасмусомЛердорфом (RasmusLerdorf), чтобы отслеживать пользователей, просматривавших его домашнюю страничку с резюме. Позже, когда функциональность РНР значительно расширилась, и профессионалы начали использовать этот язык для создания сложных сайтов, сокращение стали расшифровывать как «гипертекстовый препроцессор» (РНР: HypertextPreprocessor). Это определение означает, что данные в этом языке обрабатываются до того, как становятся HTML страницей (HTML язык гипертекстовой разметки).

Преимущество РНР перед базовым HTML состоит в том, что последний представляет собой систему с ограниченными возможностями, не обладающую гибкостью или динамичностью. Посетители сайтов видят обычные статические HTML страницы, без каких-либо персональных настроек. С помощью же РНР можно создавать привлекательные оригинальные Web-страницы на основе любых задаваемых программистом критериев (например, времени суток или операционной системы пользователя). В отличие от HTML язык РНР также может взаимодействовать с базами данных и файлами, с его помощью может обрабатываться электронная почта и выполняться многие другие операции. PHP крайне прост для освоения, но вместе с тем способен удовлетворить запросы профессиональных программистов.

PHP способен генерировать не только HTML. Доступно формирование изображений и файлов PDF. PHP также способен генерировать любые текстовые данные, такие, как XHTML и другие XML-файлы. PHP может осуществлять автоматическую генерацию таких файлов и сохранять их в файловой системе web-сервера вместо того, чтобы отдавать клиенту, организуя, таким образом, серверный кэш для динамического контента.

Эффективность является исключительно важным фактором при программировании для многопользовательских сред, к числу которых относится и Web. Очень важное преимущество PHP заключается в его «движке». «Движок» PHP не является ни компилятором, ни интерпретатором. Он является транслирующим интерпретатором. Такое устройство «движка» PHP позволяет обрабатывать сценарии с достаточно высокой скоростью. По некоторым оценкам, большинство PHP-сценариев (особенно не очень больших размеров) обрабатываются быстрее аналогичных им программ, написанных на Perl. Однако, чтобы не делали разработчики PHP, откомпилированные исполняемые файлы будут работать значительно быстрее - в десятки, а иногда и в сотни раз. Но производительность PHP вполне достаточна для создания вполне серьезных Web-приложений.

Поскольку РНР является встраиваемым (embedded) языком, он отличается исключительной гибкостью по отношению к потребностям разработчика. Хотя РНР обычно рекомендуется использовать в сочетании с HTML, он с таким же успехом интегрируется и в JavaScript, WML, XML и другие языки. Кроме того, хорошо структурированные приложения РНР легко расширяются по мере необходимости (впрочем, это относится ко всем основным языкам программирования). Нет проблем и с зависимостью от браузеров, поскольку перед отправкой клиенту сценарии РНР полностью компилируются на стороне сервера. В сущности, сценарии РНР могут передаваться любым устройствам с браузерами, включая мобильные телефоны, смартфоны, планшеты, ноутбуки, и даже носимую электронику, не говоря уже о традиционных ПК.

Существует еще одна «характеристика», которая делает РНР особенно привлекательным: он распространяется бесплатно, причем, с открытыми исходными кодами (OpenSource), что оказало несомненно благотворное влияние на PHP, поскольку поддержка пользователей со всего мира оказалась очень важным фактором в развитии проекта РНР. Вдобавок, отзывчивое сообщество пользователей РНР является своего рода «коллективной службой поддержки», и в популярных электронных конференциях можно найти ответы даже на самые сложные вопросы.

Язык гипертекстовой разметки документов HTML

Язык HTML был разработан британским учёным ТимомБернерсом-Ли приблизительно в 1986-1991 годах в стенах Европейского совета по ядерным исследованиям в Женеве (Швейцария). HTML создавался как язык для обмена научной и технической документацией, пригодный для использования людьми, не являющимися специалистами в области вёрстки. HTML успешно справлялся с проблемой сложности SGML путём определения небольшого набора структурных и семантических элементов (размечаемых «тегами»), служащих для создания относительно простых, но красиво оформленных документов. Помимо упрощения структуры документа, в HTML внесена поддержка гипертекста. Мультимедийные возможности были добавлены позже. Изначально язык HTML был задуман и создан как средство структурирования и форматирования документов без их привязки к средствам воспроизведения (отображения). В идеале, текст с разметкой HTML должен был без стилистических и структурных искажений воспроизводиться на оборудовании с различной технической оснащенностью (цветной экран современного компьютера, монохромный экран органайзера, ограниченный по размерам экран мобильного телефона или устройства и программы голосового воспроизведения текстов). С течением времени, основная идея платформонезависимости языка HTML была отдана в своеобразную жертву современным потребностям в мультимедийном и графическом оформлении.

Текстовые документы, содержащие код на языке HTML (такие документы традиционно имеют расширение «html» или «htm»), обрабатываются специальными приложениями, которые отображают документ в его форматированном виде. Такие приложения, называемые браузерами или интернет-обозревателями, обычно предоставляют пользователю удобный интерфейс для запроса веб-страниц, их просмотра (и вывода на иные внешние устройства) и, при необходимости, отправки, введённых пользователем данных на сервер. Наиболее популярными на сегодняшний день браузерами являются InternetExplorer, MozillaFirefox, Opera, GoogleChrome и Safari.

Язык HTML позволяет размечать текст. В том числе можно:

Сделать текст жирным, курсивным или подчёркнутым;

Вставить специальные символы (выходящие за рамки ASCII символы пунктуации, математические символы, греческие и готические буквы, стрелки и т. п.);

Поменять гарнитуру, кегль, начертание, цвет шрифта;

Выровнять текст по центру, левому/правому краю, по ширине;

Оформить текст как гиперссылку на другую страницу или файл;

Нарисовать таблицу.

Позже, когда появилась необходимость интерактивности веб-страниц, в HTML появились формы для введения пользователем данных, которые позднее подвергаются обработке. Формы и другую информацию можно обрабатывать с помощью специальных серверных программ (например, на языках PHP или Perl).

Открытие мультимедийных файлов, выводимых как непосредственно браузером (например, изображения в форматах JPEG, GIF или PNG; аудиофайлы MIDI и др.), так и внешними приложениями, «встраиваемыми» в окно браузера (Flash-анимация, Java-апплеты и прочее).

HTML -- это теговый язык разметки документов. Любой документ на языке HTML представляет собой набор элементов, причём начало и конец каждого элемента обозначается специальными пометками -- тегами. Элементы могут быть пустыми, то есть не содержащими никакого текста и других данных (например, тег перевода строки <br />). В этом случае обычно не указывается закрывающий тег. Кроме того, элементы могут иметь атрибуты, определяющие какие-либо их свойства (например, размер шрифта для элемента font).

3.3 Система управления базами данных MySQL

MySQL - это распространённая система управления базами данных (СУБД), очень часто применяемая в сочетании с PHP.

База данных представляет собой структурированную совокупность данных. Эти данные могут быть любыми - от простого списка предстоящих покупок до перечня экспонатов картинной галереи или огромного количества информации в корпоративной сети. Для записи, выборки и обработки данных, хранящихся в компьютерной базе данных, необходима система управления базой данных, каковой и является ПО MySQL. Поскольку компьютеры замечательно справляются с обработкой больших объемов данных, управление базами данных играет центральную роль в вычислениях. Реализовано такое управление может быть по-разному - как в виде отдельных утилит, так и в виде кода, входящего в состав других приложений.

MySQL - это система управления реляционными базами данных. В реляционной базе данных данные хранятся не все скопом, а в отдельных таблицах, благодаря чему достигается выигрыш в скорости и гибкости. Таблицы связываются между собой при помощи отношений, благодаря чему обеспечивается возможность объединять при выполнении запроса данные из нескольких таблиц. SQL как часть системы MySQL можно охарактеризовать как язык структурированных запросов плюс наиболее распространенный стандартный язык, используемый для доступа к базам данных. Если ранее разработчик работал с другими СУБД, то переход к этой системе не должен вызвать какие-либо затруднения.

Пакет MySQL доступен бесплатно в соответствии с лицензией на программное обеспечение с открытым исходным кодом.

Другая немаловажная причина популярности MySQL заключается в том, что ее создатели с самого начала разработки этой СУБД поставили на первое место ее быстродействие, пожертвовав при этом некоторыми удобствами для разработчиков. Связка PHP + MySQL или Perl + MySQL обеспечивают очень высокое быстродействие, которого очень трудно достичь другими средствами. Очень хорошая связь MySQL с PHP стала еще одной причиной популярности этой СУБД. Поддержка MySQL входит в стандартную сборку PHP, и можно быть уверенным, что проблем обращения к серверу MySQL из PHP-скриптов не будет. Таким образом, можно считать, что дешевизна, легкодоступность, производительность и тесная взаимосвязь с PHP и обеспечивают такую популярность MySQL.

Система для управления веб-проектами 1С-Битрикс

1С-Битрикс - это профессиональная система управления веб-проектами, универсальный программный продукт для создания, поддержки и развития информационных порталов и веб-проектов.

В состав программного продукта входят более 40 готовых модулей для управления информационным наполнение и структурой.

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

Система управления сайтом "1С-Битрикс" обеспечивает возможность коллективного управления сайтом, автоматизирует все процессы, организует регулярное составления отчетов и статистики в фоновом режиме, дает гарантированную техподдержку в течение всего периода использования, а также интегрируется с популярными социальными сетями и платежными системами.

1С-Битрикс показывает высокие показатели надежности, полученные при нагрузочном тестировании продукта, подтверждаются результатами работы реальных сайтов.

В продукте «1С-Битрикс» реализован механизм, который позволяет подключать к сайту любые «облака» и легко управлять ими - вплоть до обмена данными между хранилищами. В результате, вы, как владелец сайта, можете использовать только те хранилища, которые вам более удобны и выгодны.

1С-Битрикс предоставляет:

простое управление.

готовый, многократно протестированный функционал для сайтов различных направлений.

высочайший уровень безопасности и защиты.

высокая производительность даже в условиях сверхбольших нагрузок.

поддержка облачных хранилищ данных.

Shibboleth

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

Программное обеспечение Shibboleth широко использует такие стандарты идентификации, как OASIS SecurityAssertionMarkupLanguage (SAML), чтобы обеспечить возможность единого входа и механизма обмена. Пользователь подтверждает подлинность его организационных полномочий, а провайдер идентификации передает минимальную информацию о личности,необходимой для приемника услуг авторизации. Shibboleth также предоставляет расширенные функциональные возможности конфиденциальности,позволяющиена их домашнем сайте контролировать полномочия для каждого клиентского приложения.

Проект Shibboleth начался как проект Internet2 компаниейMiddleware в 2000 году, а затем в том же году проект, связанный с работой SAML рабочей группы OASIS. Shibboleth 1.0 был выпущен в 2003 году и был быстро принят научными и образовательными сообществами по всему миру. С SAML 2.0 в 2005 и Shibboleth 2.0 в следующем году стандарты SAML смог включить все многосторонние, опирающийся наметаданные подходы к пользователямПО Shibboleth.

ВShibboleth 2.3.8 можно настроить в качестве провайдера идентификации для корпоративных учетных записей в ArcGISOnline. Процесс настройки состоит из двух основных шагов: регистрации вашего провайдера идентификации в ArcGISOnline и регистрации ArcGISOnline в провайдере идентификации.

Shibboleth разрабатывается как программное обеспечение с открытым исходным кодом и распространяется под лицензией ApacheSoftware.

Открытая децентрализованная система OpenID

OpenID - это открытая децентрализованная система, которая позволяет пользователю использовать единый аккаунт для аутентификации на множестве не связанных друг с другом сайтов, порталов, блогов и форумов. Если WEB сайт предполагает использование аутентификации или авторизации пользователя, то возможные варианты реализации:

1) Использовать стандартную регистрацию через ввод email и заполнения необходимых данных.

2) Использовать аутентификацию через указание личного идентификатора OpenID провайдера.

3) Использовать авторизацию через открытый протокол OAuth.

Основная цель использования OpenID - это упрощение регистрации пользователя. Упрощение достигается в децентрализованной системе единого входа, которая позволяет использовать один логин и пароль на большом количестве сайтов. На сайтах, поддерживающих OpenID, пользователям не приходится каждый раз регистрироваться и помнить данные для каждого сайта. Вместо этого им достаточно быть зарегистрированными на сайте «провайдера идентификации» OpenID (предоставляющего идентификатор). Так как технология OpenID децентрализованная, то любой сайт может использовать программное обеспечение OpenID в качестве средства входа. Удобство OpenID также заключается в том, что при авторизации по OpenID, посещаемому сайту сразу могут передаваться личные данные пользователя (email, Имя, пол, дата рождения и др) и ему не придется каждый раз вводить данную информацию -- достаточно это сделать один раз на сайте OpenID провайдера.

Принцип работы OpenIDрассмотрим на примере моего модуля авторизации: Модуль на сайте-клиенте запрашивает по протоколу у сайта-сервера информацию, если пользователя есть учетная запись на сайте-сервере, то сайт-сервер сайту-клиенту подтвердит подлинность пользователя, и тогда сайт-клиент пустит пользователя к себе на страницу, хотя БД с данными пользователя храниться на сайте-сервере. На обоих сайтах есть свои модули. На сайте-клиенте модуль запрашивает пользователя, а сайт-сервер отвечает есть ли такой пользователь или нет (см. рис. 1.1).

Рисунок 3.1 - общая архитектура

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

Для продвинутых пользователей существует возможность авторизации по OpenID с указанием URL своего сайта, который, в свою очередь, будет пересылать запрос на авторизацию на тот OP (OpenIDprovider), который указан в HTML заголовке. В этом случае, при смене OpenID провайдера достаточно поменять код своей заглавной HTML страницы, а URL для авторизации по OpenID остается тот же. Использование своего сайта как идентификатора OpenID возможно на тех сайтах, которые предлагаю авторизоваться, указав URL OpenID.

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

Каркас для веб-приложений Drupal

Drupal - система управления содержимым, используемая также как каркас для веб-приложений (CMF), написанная на языке PHP и использующая в качестве хранилища данных реляционную базу данных(поддерживаются MySQL, PostgreSQLи другие). Drupal является свободным программным обеспечением, защищённым лицензией GPL.

Drupal имеет модульную архитектуру с компактным ядром, предоставляющим API, к которому могут обращаться модули. Стандартный набор модулей включает такие функции, как новостная лента, блог, форум, загрузка файлов, сборщик новостей, голосования, поиск и другие. Дизайн сайта меняется также посредством специальных модулей.В своей работе я решил использовать последнюю версию -Drupal 8.

Установка Drupal 8 наOpenServer

Для начала необходимо скачать OpenServer с официального сайта (см. рис 3.2).

Рисунок 3.2 - загрузка OpenServer'a.

Выбирать лучше всего версию Ultimate, потому что в ней есть все, что необходимо Drupal'у.

Устанавливать все как есть на диск C, так будет проще в будущем, потому что все руководства предполагают дефолтное расположение файлов. Сам OpenServer у меня лежит в папке C:/localhost/OpenServer, запускать нужно x64 версию, если у вас 64-битная операционная система (см. рис 3.3 - 3.4).

Рисунок 3.3 - процесс установки OpenServer'a.

Рисунок 3.4 - Запуск OpenServer'a.

После запуска у вас появится флажок в панели управления, если он красный, то нужно нажать правой кнопкой и выбрать "Запустить". Если флажок зеленый, то значит приложение уже запущенно (см. рис. 3.5).

Рисунок 3.5 - Запуск, перезагрузка, остановка заботы OpenServer'a.

Также есть еще один момент, нужно убрать в Skype использование 80-го порта. Для этого зайдите в настройки скайпа Дополнительные -> Соединение -> Использовать 80 и 443 дополнительные порты, снимите эту галочку и перезапустите OpenServer (см. рис 3.6).

Рисунок 3.6 -Настройка портов.

Дальше зайдем в папку OpenServer'a и посмотрим где будут размещаться наши сайты. Размещаются наши сайты в папке domainsOpenServer'a. Для того чтобы добавить сайт нужно просто создать новую папку в папке domains. Я создал сайт drupal8 и drupal8server (см. рис. 3.7).

Рисунок 3.7 - создание директорий для будущих сайтов.

Чтобы созданный сайт заработал, нужно перезапустить OpenServer. Для этого кликаем правой кнопкой на флажок OpenServer'а и выбираем перезапустить.Теперь мы подготовили веб сервер для нашего будущего сайта. Можно зайти на свой сайт в браузере, только нужно набрать сначала http:// перед названием сайта, например, http://drupal8.1 (см. рис. 3.8).

Рисунок 3.8 - Запуск созданного сайта.

Далее скачиваем непосредственно сам Drupal8 (https://www.drupal.org/project/drupal) и разархивируем его в ранее созданную папку (см. рис. 3.9).

Рисунок 3.9 - загрузка Drupal'a.

Так же необходимо настроить OpenServer. Нужно зайти в настройки/модули и установить версию PHP 5.6, он работает только в Apache 2.4 именно в этой версии OpenServer'a (см. рис. 3.10).

Рисунок 3.10 - Выбор версии языка.

После необходимо создать базу данных. Создавал я ее с помощью Adminer'a. Adminer позволяет создавать базу данных, редактировать, смотреть, что есть в базе данных. (см. рис. 3.11 - 3.14).

Рисунок 3.11 - Создание БД.

Заходим под пользователем rootбез пароля и создаем свою базу данных.

Рисунок 3.12 - Создание БД.

Рисунок 3.13 - Создание БД.

Рисунок 3.14 - Создание БД.

Далее приступаем к самой установки Drupal'a. Для этого в командной стоке указываем адрес http://drupal8.1/core/install.php (в моем случае) и приступаем к установке (см. рис. 3.15 - 3.18).

Рисунок 3.15 - Установка Drupal'a.

Рисунок 3.16 - Установка Drupal'a.

Рисунок 3.17 - Установка Drupal'a.

Рисунок 3.18 - Установка Drupal'a.

Далее настраиваем наш сайт. Указываем почту на которую будут приходить уведомления с сайта и учетную запись администратора (см. рис. 3.19).

Рисунок 3.19 - Настройка созданного сайта.

Рисунок 3.20 - Настройка созданного сайта.

Рисунок 3.21- Настройка созданного сайта.

Drupal 8

Drupal 8 делает упор на расширяемость и удобство разработки вместо просто редактирования контента. В 8-ке официально принято использование ООП. Начат постепенный отход от процедурного программирования и использования хуков, которые применялись в времена, когда ООП еще небыло доступно в нужном объеме в PHP. В связи с этим появляется много новых, для Drupal, концепций и понятий. Для пространств имен принято следовать стандарту PSR-0 (чуть позже, возможно PSR-4).

Одним из главных нововведений в 8-ке, является использование компонентов Symfony2:

HttpFoundation и HttpKernel -- одни из основных компонентов, с которых началась интеграция Symfony2 в Drupal. Преобразовывает все что связано с HTTP при запросе и ответе -- в объекты;

Routing -- преобразовывает HTTP запрос в вызов определенной функции, подобно hook_menu;

ClassLoader -- используется для загрузки классов по мере необходимости;

DependencyInjection или ServiceContainer -- позволяет сделать классы независимыми, и тем самым делает их доступными для повторного использования и юнит-тестирования;

EventDispatcher -- реализует паттерн Наблюдатель (Observer). Делает тоже самое что и система хуков, но на данный момент, не заменяет их полностью;

Yaml -- позволяет работать с форматом yaml;

Twig -- новый удобный, мощный движок шаблонов;

Serializer -- преобразование объектов в определенный формат и обратно;

Translation -- система переводов;

Process -- используется для выполнения в субпроцессе, команд из консоли;

Validator -- компонент, для проверки значений;

Внутри дирректории с инсталляцией Drupal 8, первое, что бросается в глаза - измененная файловая структура. Теперь каждая из папок в корневом каталоге - ядро, модули, профили, сайты и темы - соответствует компонентам, в ней содержащимся. Для модулей, не входящих в ядро, отныне отведена дирректорияmodules в самом корне.Файлы нашего тестового модуля с именембудут находится по адресу: modules/foobar.

Drupal 8, в отличии от старых версий, использует много новых элементов, в основном HTML5. Например:

tel - текстовое поле для номера телефона;

number - числовое поле, со стрелочками вверх/вниз;

email - для электронных почт, с автоматической валидацией введенного адреса на уровне браузера;

date - выбор даты в поапе, также, на стороне браузера, без дополнительных JS библиотек;

search - простенькое поле для поисков, на самом деле может использоваться много где. Отличительной особенностью данного поля является то, что при вводе в данное поле, справа (внутри поля) появляется крестик для очистки введенных данных;

range - такой вот простенький слайдер из коробки.

Описанные элементы являются частью стандарта HTML5, в случае если браузер не поддерживает данные элементы, они будут работать как обычные textfield.

API-интерфейс

API(интерфейс программирования приложений, интерфейс прикладного программирования - набор готовых классов, процедур,функций,структуриконстант, предоставляемых приложением (библиотекой, сервисом) или операционной системой для использования во внешних программных продуктах. Используется при написании всевозможных приложений. Что вывести форму (поле ввода) нужно использовать Form API. Для использования Form API нужно создать класс в котором объявить 3 метода. Класс FormBase отвечает за всю логику форм, создание, валидацию и отправку при помощи реализованных методов. В ядре Drupal 8 есть несколько различных классов форм для различных задач, от которых стоит наследоваться.

classLoginForm - класс, отвечающий за ввод пользователя данных. Этот класс наследуется от FormBase.

functionbuildForm - в этой фукции мы описываем как будет отображаться форма ввода, название полей ввода, кнопки и другие виджиты.

public function buildForm(array $form, FormStateInterface $form_state) {

$form['name'] = array(

'#type' => 'textfield',

'#title' => $this->t('Your nickname')

);

// Предоставляет обёртку для одного или более Action элементов.

$form['actions']['#type'] = 'actions';

// Добавляем нашу кнопку для отправки.

$form['actions']['submit'] = array(

'#type' => 'submit',

'#value' => $this->t('Try login'),

'#button_type' => 'primary',

);

return $form;

}

functionvalidateForm-функция, которая отвечает за проверку введенных пользователем данных.

public function validateForm(array &$form, FormStateInterface $form_state)

{

// Если длина имени меньше 5, выводим ошибку.

if (strlen($form_state->getValue('name')) < 3) {

$form_state->setErrorByName('name', $this->t('Name is too short.'));

}

}

functionsubmitForm - функция, отправляющая содержимое формы на обработку.

public function submitForm(array &$form, FormStateInterface $form_state) {

// Мы ничего не хотим делать с данными, просто выведем их в системном

// сообщении.

drupal_set_message($this->t('Thank you @name, you can login ', array(

'@name' => $form_state->getValue('name')

)));

}

Описание программного продукта

Требования, предъявляемые к программному продукту

авторизация сайт модуль

Разработать модуль сайта Кафедры вычислительных систем для централизованной авторизации пользователей через портал СибГУТИ в целях упрощения регистрации пользователя. В место того, чтобы запоминать множество паролей, пользователю достаточно иметь всего лишь одну учетную запись для авторизации на сайтах поддерживающий данный модуль. Если же у пользователя нет учетной записи, то ее можно создать.В модуле реализован удобный интерфейс.

Результаты

Были созданы необходимые каталоги файлов при создании модуля на клиенте (см. рис. 4.1). В этой таблице находиться описание файлов модуля-клиента (см. табл. 4.1).

Таблица 4.1 - Описание файлов клиента.

Название файла

Функции, выполняемые файлом.

Config/inctall/page_example.setting.yml

Хранит настройки модуля по умолчанию.

Src/Controller/FirstController.php

Хранит класс, реализующий методы, которые создают контенд станицы (текст, заголовок). Отображает текст об удачной авторизации.

Src/Form/ LoginForm.php

Храниться информация, о форме (кнопки, поля ввода) и правило их обработке.

page_example.info.php

Название модуля как он будет отображаться в Drupalи информация о нем для установки.

page_example.routing.php

Связывает между собой URLадрес сайта и вызываемый метод.

Рисунок 4.1 - Каталог файлов модуля клиента.

Были созданы необходимые каталоги файлов при создании модуля на сервере (см. рис. 4.2). В этой таблице находиться описание файлов модуля-сервера (см. табл. 4.2).

Таблица 4.2 - Описание файлов сервера.

Название файла.

Функции, выполняемые файлом.

Src/Controller/FirstController.php

Класс, в котором реализованы методы вывода информации авторизированного в данный момент пользователя.

Src/Form/AllowForm.php

Форма с формами запрета или авторизации от имени текущего пользователя.

Src/Form/MyLoginForm.php

Форма с полями ввода логина и пароля в случаи если пользователь не авторизован на сервере.

page_example.info.php

Имя модуля, его версия.

page_example.routing.php

Файл связывающий адреса страниц и выполняющие функции.

Рисунок 4.2 - Каталог файлов модуля сервера.

Взаимодействие сервера-клиента происходит с помощью перенаправлений (redirect) (см. рис. 4.3).

Рисунок 4.3 - Диаграмма перенаправлений (переходов).

За каждым адресом стоят определенные функции, которые связываются между собой в файле page_example.routing.php.

В результате получился модуль, умеющий авторизовывать клиента и клиентский модуль, доверяющий провайдеру (см. рис. 4.4).

Рисунок 4.4 - Кнопка авторизации.

Если на сервере на текущий момент времени нет авторизированного пользователя, можно попробовать подобрать данные учетной записи, если на сервере такая учетная запись существует, то нам позволят авторизироваться на клиенте учетной записью сервера (см. рис. 4.5).

Рисунок 4.5 - Авторизация учетной записи.

Если на сервере авторизирован какой-то пользователь и клиент попытается авторизоваться через текущего пользователя на сервере, у клиента сервера появиться окно с разрешением либо отказом использования его личных данных для пользователя сайта-клиента (см. рис. 4.6).

Рисунок 4.6 - Подтверждение или отказ в использовании личных данных.

Библиография

Будилов В.А., Практическое занятие по HTML.Краткий курс [Текст] : монография / В.А. Будилов. - СПб. : Наука и техника, 2001. - 253с. - 64 р.

Петюшкин А.В., HTML. Экспресс-курс [Текст] : монография / А. В. Петюшкин. - СПб. : БХВ-Петербург, 2004. - 242с. - 135 р.

Хейз Д., Освой самостоятельно HTML и XHTML. 10 минут на урок [Текст] : монография / Д. Хейз. - М. : Издат.дом "Вильямс", 2003. - 223с. - 88 р.

Петюшкин А.В., HTML в Web - дизайне [Текст] : монография / А. В. Петюшкин. - СПб. : БХВ-Санкт-Петербург, 2005. - 400с. - 280 р.

Дронов Владимир PHP, MySQL и Dreamweaver MX 2004. Разработка интерактивных Web-сайтов; БХВ-Петербург - Москва, 2010. - 448 c.

Прохоренок Николай Разработка Web-сайтов с помощью Perl и MySQL; БХВ-Петербург - Москва, 2009. - 550 c.

Евсеев, В.В. Трофимов; под ред. В.В. Трофимова. - М. :Кнорус, 2009. - 263с. - 400 р.

Комолова Н.В., HTML. Учебный курс [Текст] : учебное пособие / Н.В, Комолова. - СПб. : ПИТЕР, 2007. - 267с. - 230 р., 250 р.

Т. Томлинсон. CMS Drupal 7: руководство по разработке системы управления веб-сайтом, - М.: Вильямс, 2011. - 560 с.

Колисниченко Д.Н., Drupal 7. Руководство пользователя. - «Диалектика», 2011. - 256с.

Приложение

(рекомендуемое)

Наиболее употребляемые текстовые сокращения

ВС - вычислительная система

ПЗ - пояснительная записка

БР - бакалаврская работа

МА - модуль авторизации

УЗ - учетная запись

ПО - программное обеспечение

СибГУТИ - Сибирский государственный университет телекоммуникаций и информатики

Приложение Б

Листинги программ

ЛистингВ.1 - page_example.info

name: 'Page example'

type: module

description: 'An example module showing how to define a page to be displayed at a given URL.'

package: 'Example modules'

core: 8.x

ЛистингВ.2 - page_example.routing

page_example.content:

path: '/jjjkjadfdfsjaksjfajjakdkfjksadjf'

defaults:

_controller: '\Drupal\page_example\Controller\FirstController::userinfo'

requirements:

_permission: 'access content'

page_example.control:

path: '/control'

defaults:

_controller: '\Drupal\page_example\Controller\FirstController::content'

requirements:

_permission: 'access content'

page_example.loginform:

path: '/loginform'

defaults:

_title: 'Gimme your name'

_form: '\Drupal\page_example\Form\MyLoginForm'

requirements:

_permission: 'access content'

page_example.loginallow:

path: '/loginallow'

defaults:

_title: 'Allow or not?'

_form: '\Drupal\page_example\Form\AllowForm'

requirements:

_permission: 'access content'

ЛистингВ.3 - src/Controller/FirstController

<?php

/**

@file

Contains \Drupal\page_example\Controller\FirstController.

*/

namespace Drupal\page_example\Controller;

use Drupal\Core\Controller\ControllerBase;

use Drupal\user\Entity;

use Drupal\Core\Routing\TrustedRedirectResponse;

classFirstController extends ControllerBase {

public function userinfo() {

$account = \Drupal::currentUser();

$username = $account->getAccountName();

if ($username == "") {

$response = new TrustedRedirectResponse("http://server/loginform");

} else {

$response = new TrustedRedirectResponse("http://server/loginallow");

}

return $response;

}

public function content() {

$markup_string = 'lal<br/>';

$account = \Drupal::currentUser();

$markup_string .= "<br/><p>". $account->getAccountName() . "</p>";

$markup_string .= "<br/><p>". $account->getDisplayName() . "</p>";

return array(

'#type' => 'markup',

'#markup' =>t($markup_string),

'#title' =>t('Authdata'),

);

}

}

?>

ЛистингВ.4 - src/Form/AllowForm.php

<?php

namespace Drupal\page_example\Form;

use Drupal\Core\Form\FormBase;

use Drupal\Core\Form\FormStateInterface;

use Drupal\Core\Routing\TrustedRedirectResponse;

classAllowForm extends FormBase {

public function getFormId() {

return 'login';

}

/**

* Создание нашей формы.

*

* {@inheritdoc}.

*/

public function buildForm(array $form, FormStateInterface $form_state) {

// Предоставляет обёртку для одного или более Action элементов.

$form['actions']['#type'] = 'actions';

// Добавляем нашу кнопку для отправки.

$form['actions']['submit'] = array(

'#type' => 'submit',

'#value' => $this->t('Allow to login as current user'),

'#button_type' => 'primary',

);

$form['actions']['disallow'] = array(

'#type' => 'submit',

'#value' => $this->t('No, idont want'),

'#submit'=>array('::disallow'),

);

return $form;

}

public function disallow(array &$form, FormStateInterface $form_state)

{

$response = new TrustedRedirectResponse("http://drupal81/logged_in/nope");

$response->send();

}

public function submitForm(array &$form, FormStateInterface $form_state) {

// Мы ничего не хотим делать с данными, просто выведем их в системном

// сообщении.

$account = \Drupal::currentUser();

$username = $account->getAccountName();

$pass = '1';

$uid = \Drupal::service('user.auth')->authenticate($username, $pass);

if ($uid != null) {

$response = new TrustedRedirectResponse("http://drupal81/logged_in/" . $username);

$response->send();

return $response;

} else {

$response = new TrustedRedirectResponse("http://drupal81/logged_in/nope");

$response->send();

}

}

}

?>

ЛистингВ.5 - src/Form/MyLoginForm.php

<?php

namespace Drupal\page_example\Form;

use Drupal\Core\Form\FormBase;

use Drupal\Core\Form\FormStateInterface;

use Drupal\Core\Routing\TrustedRedirectResponse;

classMyLoginForm extends FormBase {

public function getFormId() {

return 'login';

}

/**

* Создание нашей формы.

*

* {@inheritdoc}.

*/

public function buildForm(array $form, FormStateInterface $form_state) {

$form['name'] = array(

'#type' => 'textfield',

'#title' => $this->t('Your nickname')

);

$form['pass'] = array(

'#type' => 'password',

'#title' => $this->t('Your pass')

);

$form['actions']['#type'] = 'actions';

$form['actions']['submit'] = array(

'#type' => 'submit',

'#value' => $this->t('Try login'),

'#button_type' => 'primary',

);

return $form;

}

public function validateForm(array &$form, FormStateInterface $form_state)

{

if (strlen($form_state->getValue('name')) < 3) {

$form_state->setErrorByName('name', $this->t('Name is too short.'));

}

}

public function submitForm(array &$form, FormStateInterface $form_state) {

// Мы ничего не хотим делать с данными, просто выведем их в системном

// сообщении.

$username = $form_state->getValue('name');

$pass = $form_state->getValue('pass');

$uid = \Drupal::service('user.auth')->authenticate($username, $pass);

if ($uid != null) {

$response = new TrustedRedirectResponse("http://drupal81/logged_in/" . $username);

$response->send();

return $response;

} else {

$response = new TrustedRedirectResponse("http://drupal81/logged_in/nope");

$response->send();

}

}

}

?>

ЛистингВ.6 - Controller/FirstController

<?php

/**

@file

Contains \Drupal\page_example\Controller\FirstController.

*/

namespace Drupal\page_example\Controller;

use Drupal\Core\Controller\ControllerBase;

use Drupal\user\Entity;

use Drupal\Core\Routing\TrustedRedirectResponse;

classFirstController extends ControllerBase {

public function userinfo() {

$account = \Drupal::currentUser();

$username = $account->getAccountName();

if ($username == "") {

$response = new TrustedRedirectResponse("http://server/loginform");

} else {

$response = new TrustedRedirectResponse("http://server/loginallow");

}

return $response;

}

public function content() {

$markup_string = 'lal<br/>';

$account = \Drupal::currentUser();

$markup_string .= "<br/><p>". $account->getAccountName() . "</p>";

$markup_string .= "<br/><p>". $account->getDisplayName() . "</p>";

return array(

'#type' => 'markup',

'#markup' =>t($markup_string),

'#title' =>t('Authdata'),

);

}

}

?>

Размещено на Allbest.ru

...

Подобные документы

  • Разработка средствами языка PHP и Фреймворка Yii системы регистрации и аутентификации пользователей на сайте. Проектирование приложения с помощью языка UML, построение диаграммы прецедентов. База данных приложения. Страница регистрации пользователей.

    отчет по практике [1,1 M], добавлен 15.09.2014

  • Создание расширенного календаря CMS Joomla, который предоставляет возможность создания ежедневника на любом сайте. Создание структуры модуля, файл шаблонизации. Выбор цветовой схемы для модуля. Проектирование XML файла с описанием и настройками.

    дипломная работа [838,8 K], добавлен 31.05.2013

  • Проектирование web-сайта кафедры для освещения деятельности учебного заведения. Выбор программных средств для его разработки. Разработка интерфейса и административной части сайта. Описание и принцип работы свободного програvмного обеспечения CMS PHP-NUKE.

    курсовая работа [2,0 M], добавлен 16.12.2009

  • Разработка Веб-сайта, с помощью которого появится возможность эффективного распространения информации об услугах фирмы ООО "ХКФ Банк", привлечения новых потенциальных клиентов. Требования к программному обеспечению. Описание и структурная схема алгоритма.

    дипломная работа [2,1 M], добавлен 18.08.2014

  • Обоснование потребности в web-сайте. Описание установки CMS Joomla. Постановка задачи при проектировании web-сайта. Обоснование выбора CMS (Content Management System). Разработка базы данных и интерфейса. Классификация и проектирование web-сайтов.

    дипломная работа [1,9 M], добавлен 13.05.2009

  • Использование единой системы программной документации. Состав нормативно-технических документов. Разработка анкетирования средствами web-приложений. Описание и текст программы, методика испытаний. Анализ предметной области сайта. Пояснительная записка.

    курсовая работа [32,2 K], добавлен 13.03.2015

  • Понятие и виды Web-технологии. Технология HTML, JAVA, SSI, CSS, РНР, ASP, VBScript, Macromedia Flash, DHTML, XHTML и XML. Иерархическая структура сайта. Текстовое описание разделов. Требования к функциональным возможностям сайта. Модуль вывода новостей.

    курсовая работа [49,6 K], добавлен 16.05.2011

  • Создание информационного web-сайта для любителей рыбалки, позволяющего получить необходимую информацию. Требования к программе или программному продукту. Стадии и этапы разработки. Программное обеспечение, рекомендуемое для функционирования программы.

    дипломная работа [7,9 M], добавлен 18.03.2012

  • Изучение теоретических основ создания сайта. Выбор инструментальных и программных средств для создания сайта кафедры; разработка структуры и дизайна, программной документации; напыление контентом. Расчет себестоимости, затрат на внедрение и эксплуатацию.

    дипломная работа [1,3 M], добавлен 24.09.2015

  • Обзор средств программирования. Описание и свойства языка Delphi. Основания для разработки, ее назначение, предъявляемые требования, стадии разработки. Описание схемы основного модуля, процедур, программы. Используемые технические и программные средства.

    курсовая работа [42,8 K], добавлен 25.02.2012

  • Изучение теоретических основ создания сайта. Обоснование необходимости разработки сайта кафедры уголовного, административного права и процесса. Выбор инструментальных и программных средств. Расчет себестоимости, затрат на внедрение и эксплуатацию сайта.

    дипломная работа [2,3 M], добавлен 13.10.2015

  • Разработка информационно-торгового сайта для ООО "Аккаунт". Характеристика компании, основные принципы работы с клиентами. Построение концептуальной модели базы данных: структура, этапы проектирования. Создание интернет-сайта, программы для тестирования.

    дипломная работа [1,2 M], добавлен 29.05.2012

  • Методика расчётов показателей ликвидности предприятия. Требования к программному продукту: описание решаемых задач, внутренней структуры системы (базы данных), рекомендации программисту и пользователю. Порядок контроля и приемки программного продукта.

    курсовая работа [1010,9 K], добавлен 28.05.2013

  • Набор требований к программному продукту "Калькулятор". Тестовые сценарии для модульного тестирования. Использование системы визуального проектирования. Разработка программного кода. Вычисление цикломатического числа и построение графы каждого модуля.

    контрольная работа [170,4 K], добавлен 04.11.2014

  • Характеристика деятельности, структуры и функций агентства. Анализ текущей структуры сайта заказа наружной рекламы. Описание функциональной архитектуры и архитектуры данных проектируемого автоматизированного модуля. Проектирование интерфейса пользователя.

    дипломная работа [2,0 M], добавлен 22.07.2015

  • Преимущества и недостатки статических и динамических сайтов. Эволюция и классификация web-приложений. Требования, предъявляемые к системам управления контентом (CMS). Создание структуры сайта, информационное наполнение страниц. Разработка базы данных CMS.

    дипломная работа [856,2 K], добавлен 27.06.2012

  • Среда редактирования HTML. Возможности CSS или создание шаблона web-дизайна. Осмысление тегов

    &. Создание таблиц стилей. Связка базы данных с сайтом. Создание формы авторизации. Возможность создания самых разнообразных локальных приложений.

    отчет по практике [1,9 M], добавлен 09.03.2016

  • Алгоритм работы программы, которая выполняет записи в log-файл действий, идентифицированных как попытки атаки на страницу авторизации пользователей условного ресурса. Макет веб-сайта, листинги файлов программы и процесс ее взаимодействия с СУБД MySQL.

    курсовая работа [1,3 M], добавлен 22.06.2015

  • Анализ потребности в проекте создания сайта для завода оконных систем "Вертикаль", его основные цели. Сравнительные характеристики аналогичных продуктов. Требования к программному продукту и средствам защиты информации. Технология гипертекста - язык HTML.

    дипломная работа [527,7 K], добавлен 06.07.2011

  • Изучение структуры шаблона для создания сайта для НБУ "Юг-Сервис", который будет иметь возможность совместного наполнения информацией в режиме реального времени. Сравнение CMS Drupal, Joomla и WordPress. Наполнение сайта и его размещение на хостинге.

    дипломная работа [7,3 M], добавлен 25.04.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.