17
17.03.201110:4817.03.2011 10:48:32
В «десятке» вышел новый модуль «Социальные сервисы». В настоящий момент модуль предоставляет аутентификацию посетителей сайта на внешних сервисах авторизации. Внешняя авторизация облегчает посетителям регистрацию на сайте: не нужно заводить еще один логин/пароль, можно воспользоваться уже имеющимся на одном из известных сервисов. Давайте рассмотрим работу модуля с точки зрения пользователя, администратора сайта, разработчика.
Показать скрытое содержание
Итак, если модуль установлен и настроен, то посетитель в закрытом разделе увидит стандартную форму авторизации. Форма, помимо внутреннего логина и пароля, предлагает выбрать один из внешних сервисов авторизации:

Сервисы можно условно поделить на две группы: одни являются провайдерами OpenID, другие работают по собственным протоколам авторизации.
Если сервис использует OpenID, то выводится форма, куда пользователь может ввести свой openid identity. Для удобства мы предлагаем вводить не полный идентификатор, а только специфичную для сервиса часть. Например:

Для социальных сетей выводится просто кнопка, открывающая диалог авторизации внешнего сервиса:

Внешний вид диалога авторизации зависит от сервиса:

Диалог Facebook.
Диалог Мой Мир@mail.ru.
После успешной аутентификации пользователь возвращается на сайт и авторизуется. Если это первый вход пользователя, то он добавляется в список пользователей сайта (с установленным значением поля «Тип авторизации», равным сервису авторизации).
Давайте посмотрим, что администратор сайта должен настроить, чтобы сервисы авторизации стали доступны посетителям.
После установки обновления модуль уже инсталлирован в системе. Если до обновления в настройках ядра уже был разрешен OpenID или Live ID, то соответствующие сервисы уже доступны.
Управлять сервисами можно в настройках модуля «Социальные сервисы». Там можно включать сервисы, сортировать их, настраивать необходимые параметры. Сервисы OpenID не требуют дополнительных настроек.

Обратите внимание, что для сервисов ВКонтакте, Мой мир@mail.ru, Twitter и Facebook требуется зарегистрировать на этих сервисах приложение (ссылки указаны).
При настройке приложений обращайте внимание на параметры типа «адрес сайта», «домен» — они чрезвычайно важны для правильной работы сервисов. Чаще всего авторизация будет работать и для поддоменов.

Настройки ВКонтакте.

Настройки Мой Мир@mail.ru.

Настройки Twitter.

Настройки Facebook.
На что еще требуется обратить внимание при настройке проекта?
- Некоторые сервисы требуют обращения только по HTTPS. Поэтому крайне желательно, чтобы php был собран с библиотекой openssl.
- Если на проекте используются различного вида редиректы (mod_rewrite), убедитесь, что при редиректе не перекодируются параметры GET.
Давайте теперь познакомимся модулем с точки зрения разработчика.
Обработка и вывод социальных сервисов добавлены в стандартные компоненты system.auth.authorize и system.auth.form. В шаблоне компонента system.auth.authorize блок соцсервисов выводится с помощью компонента socserv.auth.form:
<?if($arResult["AUTH_SERVICES"]):?>
<?
$APPLICATION->IncludeComponent("bitrix:socserv.auth.form", "",
array(
"AUTH_SERVICES"=>$arResult["AUTH_SERVICES"],
"CURRENT_SERVICE"=>$arResult["CURRENT_SERVICE"],
"AUTH_URL"=>$arResult["AUTH_URL"],
"POST"=>$arResult["POST"],
),
$component,
array("HIDE_ICONS"=>"Y")
);
?>
<?endif?>
В шаблоне компонента system.auth.form ситуация интереснее: там отдельно выводятся иконки сервисов, клик на которые открывает окно с формой сервисов:

«Маленькая» форма авторизации.

«Всплывающая» форма авторизации.
Реализован такой подход с помощью двух вызовов компонента socserv.auth.form с разными шаблонами:
<?
$APPLICATION->IncludeComponent("bitrix:socserv.auth.form", "icons",
array(
"AUTH_SERVICES"=>$arResult["AUTH_SERVICES"],
"SUFFIX"=>"form",
),
$component,
array("HIDE_ICONS"=>"Y")
);
?>
<?if($arResult["AUTH_SERVICES"]):?>
<?
$APPLICATION->IncludeComponent("bitrix:socserv.auth.form", "",
array(
"AUTH_SERVICES"=>$arResult["AUTH_SERVICES"],
"AUTH_URL"=>$arResult["AUTH_URL"],
"POST"=>$arResult["POST"],
"POPUP"=>"Y",
"SUFFIX"=>"form",
),
$component,
array("HIDE_ICONS"=>"Y")
);
?>
<?endif?>
Обратите внимание, что второй вызов должен быть за пределами тега <form>, т.к. он сам выводит форму.
Как всегда, вы можете кастомизировать вывод стандартных компонентов. Самое доступное — это переопределить стили CSS в шаблоне сайта. Затем, вы можете кастомизировать шаблоны компонента socserv.auth.form.
Список социальных сервисов является программно-расширяемым. При построении списка сервисов вызывается событие «OnAuthServicesBuildList» модуля «socialservices». Обработчик события должен вернуть массив вида:
AddEventHandler("socialservices", "OnAuthServicesBuildList", array("CSocServFacebook", "GetDescription"));
class CSocServFacebook extends CSocServAuth
{
const ID = "Facebook";
public function GetDescription()
{
return array(
"ID" => self::ID,
"CLASS" => "CSocServFacebook",
"NAME" => "Facebook",
"ICON" => "facebook",
);
}
}
В классе, название которого возвращается обработчиком, должны быть реализованы методы:
public function GetSettings()
{
//массив опций, как он используется в option.php модулей
return array(
array("facebook_appid", GetMessage("socserv_fb_id"), "", Array("text", 40)),
array("facebook_appsecret", GetMessage("socserv_fb_secret"), "", Array("text", 40)),
array("note"=>GetMessage("socserv_fb_sett_note")),
);
}
public function GetFormHtml($arParams)
{
return 'Ваш HTML для формы';
}
public function Authorize()
{
//собственно код для авторизации пользователя
}
Таково наше первое знакомство с модулем социальных сервисов. Надеюсь, что использование модуля сделает работу с вашими проектами более удобной для ваших посетителей.
Всем привет! Наверняка каждый из нас зарегистрирован на огромном количестве сайтов, но иногда становится лень заводить очередной аккаунт, заполняя различные формы и отвечая на вопросы капчи. Есть ли выход из этой ситуации?

Аутентификация с помощью OpenID — это хороший инструмент, позволяющий владельцам сайтов значительно упростить процедуру входа пользователей в учётную запись. При этом пользователям не потребуется вводить свои данные для регистрации.
Провайдеры OpenID в прошлом получили широкое распространение, в их число входили такие крупные компании, как Яндекс, Google, Mail.ru, Yahoo. Со временем, каждый из провайдеров один за другим стали прекращать свою работу по протоколам OpenID 1.0 и OpenID 2.0, предлагая более безопасные механизмы авторизации на других сайтах.
OpenID — это открытый стандарт децентрализованной системы аутентификации, предоставляющей пользователю возможность создать единую учётную запись для аутентификации на множестве не связанных друг с другом интернет-ресурсов, используя услуги третьих лиц.
Актуальным на данный момент является третье поколение OpenID-технологии с дополнительными механизмами для надёжного шифрования и цифровой подписи, которое представляет собой аутентификационную надстройку над протоколом авторизации OAuth 2.0.
Новое поколение технологии имеет название OpenID Connect и позволяет сайтам проверить подлинность пользователя на основе аутентификации, выполненной сервером авторизации, а также получать базовую информацию о профиле пользователя.
OpenID Connect — это надстройка над протоколом авторизации OAuth 2.0 для проверки личности пользователя на основе аутентификации, выполненной авторизационным сервером.
Организациям, которые хотят обеспечить гарантию и подтвердить соответствие своего способа авторизации стандарту OpenID Connect, требуется пройти сертификацию в некоммерческой организации OpenID Foundation. Сертифицированные партнёры получают право размещать на своём сайте специальный знак:

Среди международных интернет-компаний, прошедших сертификацию OpenID, можно выделить Google, Yahoo, Microsoft, PayPal, Oracle, IBM и многие другие. В российском сегменте крупные компании проигнорировали возможность сертификации, но всё же предлагают своим пользователям API для авторизации на основе открытого протокола OAuth 2.0, в некоторых случаях с учётом требований OpenID Connect.
Владелец доменного имени может использовать его в качестве синонима (алиаса) к уже существующему OpenID-идентификатору, полученному у любого провайдера OpenID — эта процедура называется делегированием OpenID идентификатора. Вы также можете использовать домен сайта в качестве OpenID.
Существует несколько способов реализации делегирования: сертифицированные провайдеры, серверы, а также внешние библиотеки (на PHP, JavaScript, Python и других языках) — все они представлены в документации для разработчиков на официальном сайте.

Раньше мне доводилось пользоваться услугами популярного на тот момент провайдера myOpenID. Достаточно было зарегистрироваться у провайдера и добавить на свой сайт несколько мета-тегов, а для авторизации на других сайтах, поддерживающих вход с помощью OpenID, — указать свой домен и подтвердить разрешение на доступ.
К сожалению, провайдер myOpenID закрылся 1 февраля 2014 года.
Прекращение его работы, по словам основателя, связано с массовым распространением социальных сетей и почтовых сервисов, предлагающих свои методы аутентификации. Остаётся выбирать другого провайдера OpenID или использовать внешние библиотеки. А вы используете OpenID для авторизации на сайтах?
наташа К
Блог
Кулинарная
книга
База продуктов
наташа К
03.08.2016 20:53
К сожалению, произошла ошибка при авторизации на сервисе Mail.Ru.
Помогите. не могу зайти на свою прежнюю страницу. пришлось
регистрироваться заново. Пароль на прежней странице не помню.
- Следующая
-
Дневник
питания -
Как похудеть
пошаговый курс -
Дневник
тренировок
Новые рецепты
Зкуска из тартарчика маринованной нерки с клубникой и рисом жасминовым
Автор Алла
6
9
Морская рыба запечённая с картофелем и луком
Автор Ольга
4
2
Майонез из соевого изолята
Автор Мила Равно
5
5
Лучшие рационы
Калорийность: 1007 кКал
Витамины и минералы: 91%
Калорийность: 1000 кКал
Витамины и минералы: 85%
Калорийность: 1037 кКал
Витамины и минералы: 88%
Интересные блоги
ГалинаЯ (ИМТ 24,5)
21-01-2023
Дневник питания за 21.01.2023
Я обещала написать что-то про тренажерный зал по …
16
125
Дневник питания за 19.01.2023
Камнями и тапками не кидать. Кусок в горло не лез….
17
65
ГалинаЯ (ИМТ 24,5)
22-01-2023
Дневник питания за 22.01.2023
Белки шагают впереди🚩
Ну и ладно, сегодня воскресе…
7
65
17
17.03.201110:4817.03.2011 10:48:32
В «десятке» вышел новый модуль «Социальные сервисы». В настоящий момент модуль предоставляет аутентификацию посетителей сайта на внешних сервисах авторизации. Внешняя авторизация облегчает посетителям регистрацию на сайте: не нужно заводить еще один логин/пароль, можно воспользоваться уже имеющимся на одном из известных сервисов. Давайте рассмотрим работу модуля с точки зрения пользователя, администратора сайта, разработчика.
Итак, если модуль установлен и настроен, то посетитель в закрытом разделе увидит стандартную форму авторизации. Форма, помимо внутреннего логина и пароля, предлагает выбрать один из внешних сервисов авторизации:

Сервисы можно условно поделить на две группы: одни являются провайдерами OpenID, другие работают по собственным протоколам авторизации.
Если сервис использует OpenID, то выводится форма, куда пользователь может ввести свой openid identity. Для удобства мы предлагаем вводить не полный идентификатор, а только специфичную для сервиса часть. Например:

Для социальных сетей выводится просто кнопка, открывающая диалог авторизации внешнего сервиса:

Внешний вид диалога авторизации зависит от сервиса:

Диалог Facebook.
Диалог Мой Мир@mail.ru.
После успешной аутентификации пользователь возвращается на сайт и авторизуется. Если это первый вход пользователя, то он добавляется в список пользователей сайта (с установленным значением поля «Тип авторизации», равным сервису авторизации).
Давайте посмотрим, что администратор сайта должен настроить, чтобы сервисы авторизации стали доступны посетителям.
После установки обновления модуль уже инсталлирован в системе. Если до обновления в настройках ядра уже был разрешен OpenID или Live ID, то соответствующие сервисы уже доступны.
Управлять сервисами можно в настройках модуля «Социальные сервисы». Там можно включать сервисы, сортировать их, настраивать необходимые параметры. Сервисы OpenID не требуют дополнительных настроек.

Обратите внимание, что для сервисов ВКонтакте, Мой мир@mail.ru, Twitter и Facebook требуется зарегистрировать на этих сервисах приложение (ссылки указаны).
При настройке приложений обращайте внимание на параметры типа «адрес сайта», «домен» — они чрезвычайно важны для правильной работы сервисов. Чаще всего авторизация будет работать и для поддоменов.

Настройки ВКонтакте.

Настройки Мой Мир@mail.ru.

Настройки Twitter.

Настройки Facebook.
На что еще требуется обратить внимание при настройке проекта?
- Некоторые сервисы требуют обращения только по HTTPS. Поэтому крайне желательно, чтобы php был собран с библиотекой openssl.
- Если на проекте используются различного вида редиректы (mod_rewrite), убедитесь, что при редиректе не перекодируются параметры GET.
Давайте теперь познакомимся модулем с точки зрения разработчика.
Обработка и вывод социальных сервисов добавлены в стандартные компоненты system.auth.authorize и system.auth.form. В шаблоне компонента system.auth.authorize блок соцсервисов выводится с помощью компонента socserv.auth.form:
<?if($arResult["AUTH_SERVICES"]):?>
<?
$APPLICATION->IncludeComponent("bitrix:socserv.auth.form", "",
array(
"AUTH_SERVICES"=>$arResult["AUTH_SERVICES"],
"CURRENT_SERVICE"=>$arResult["CURRENT_SERVICE"],
"AUTH_URL"=>$arResult["AUTH_URL"],
"POST"=>$arResult["POST"],
),
$component,
array("HIDE_ICONS"=>"Y")
);
?>
<?endif?>
В шаблоне компонента system.auth.form ситуация интереснее: там отдельно выводятся иконки сервисов, клик на которые открывает окно с формой сервисов:

«Маленькая» форма авторизации.

«Всплывающая» форма авторизации.
Реализован такой подход с помощью двух вызовов компонента socserv.auth.form с разными шаблонами:
<?
$APPLICATION->IncludeComponent("bitrix:socserv.auth.form", "icons",
array(
"AUTH_SERVICES"=>$arResult["AUTH_SERVICES"],
"SUFFIX"=>"form",
),
$component,
array("HIDE_ICONS"=>"Y")
);
?>
<?if($arResult["AUTH_SERVICES"]):?>
<?
$APPLICATION->IncludeComponent("bitrix:socserv.auth.form", "",
array(
"AUTH_SERVICES"=>$arResult["AUTH_SERVICES"],
"AUTH_URL"=>$arResult["AUTH_URL"],
"POST"=>$arResult["POST"],
"POPUP"=>"Y",
"SUFFIX"=>"form",
),
$component,
array("HIDE_ICONS"=>"Y")
);
?>
<?endif?>
Обратите внимание, что второй вызов должен быть за пределами тега <form>, т.к. он сам выводит форму.
Как всегда, вы можете кастомизировать вывод стандартных компонентов. Самое доступное — это переопределить стили CSS в шаблоне сайта. Затем, вы можете кастомизировать шаблоны компонента socserv.auth.form.
Список социальных сервисов является программно-расширяемым. При построении списка сервисов вызывается событие «OnAuthServicesBuildList» модуля «socialservices». Обработчик события должен вернуть массив вида:
AddEventHandler("socialservices", "OnAuthServicesBuildList", array("CSocServFacebook", "GetDescription"));
class CSocServFacebook extends CSocServAuth
{
const ID = "Facebook";
public function GetDescription()
{
return array(
"ID" => self::ID,
"CLASS" => "CSocServFacebook",
"NAME" => "Facebook",
"ICON" => "facebook",
);
}
}
В классе, название которого возвращается обработчиком, должны быть реализованы методы:
public function GetSettings()
{
//массив опций, как он используется в option.php модулей
return array(
array("facebook_appid", GetMessage("socserv_fb_id"), "", Array("text", 40)),
array("facebook_appsecret", GetMessage("socserv_fb_secret"), "", Array("text", 40)),
array("note"=>GetMessage("socserv_fb_sett_note")),
);
}
public function GetFormHtml($arParams)
{
return 'Ваш HTML для формы';
}
public function Authorize()
{
//собственно код для авторизации пользователя
}
Таково наше первое знакомство с модулем социальных сервисов. Надеюсь, что использование модуля сделает работу с вашими проектами более удобной для ваших посетителей.
К сожалению, произошла ошибка при авторизации на сервисе Mail.Ru OpenID.
Пожалуйста, авторизуйтесь
-
.livejournal.com
-
@mail.ru
-
liveinternet.ru/users/ -
.blogspot.com
-
OpenID:
Логин
Пароль
Запомнить меня на этом компьютере
Забыли свой пароль?
Если вы впервые на сайте, заполните, пожалуйста, регистрационную форму.
Зарегистрироваться
К сожалению, произошла ошибка при авторизации на сервисе Mail.Ru OpenID.
Пожалуйста, авторизуйтесь
-
@mail.ru
-
OpenID:
Логин
Пароль
Запомнить меня на этом компьютере
Забыли свой пароль?
Если вы впервые на сайте, заполните, пожалуйста, регистрационную форму.
Зарегистрироваться
Тесты по скорой помощи
Для просмотра этой страницы вы должны быть авторизованы.
К сожалению, произошла ошибка при авторизации на сервисе Mail.Ru OpenID.
Авторизация
Пожалуйста, авторизуйтесь:
| Логин: | |
| Пароль: | |
| Запомнить меня на этом компьютере | |
Забыли свой пароль?
Зарегистрироваться
Если вы впервые на сайте, заполните, пожалуйста, регистрационную форму.
