Авторизация через социальные сети. Настройка HybridAuth на Modx Revo. Авторизация через соц сети modx evo
Реализуем авторизацию в MODX через соц сети при помощи HybridAuth
Данный пакет, можно скачать с репозитория modstore.
Данный компонент хорош тем, что у него:
- Много сервисов авторизации (вернее есть все самые популярные).
- Нет зависимости от других компонентов и сервисов. Если к примеру один или несколько сервисов перестали работать (поменялись к примеру алгоритмы или просто отключены) — то всегда можно зайти через другой.
- Нет сторонних js библиотек — работает на чистом php, отсюда — есть возможность изменения внешнего вида формы входа.
- Привязывает разные учетные записи юзера к одной, а не плодит кучу.
- Есть возможность сделать регистрацию через другой компонент, например через Login.
- Поддерживает pdoTools (пожалуй самый популярный и ходовой инструмент), и синтаксис Fenom.
- Автоматически интегрируется с пакетом Office (личный кабинет).
- Простота использования — нужно только получить ключи у нужных провайдеров и прописать их в настройках.
Регистрация у провайдеров и получение ключей
Все инструкции лежат здесь: docs.modx.pro/components/hybridauth/providers/, часть из них немного устарела, но при желании разберетесь, единственно изменилась ссылка у твиттера на apps.twitter.com .
Вот так пишутся Callback URI https://site.ru/?hauth.done=Провайдер , например https://site.ru/?hauth.done=Yandex иногда вот так: https://site.ru/assets/components/hybridauth/action.php?hauth.done=Yandex
Настройки провайдеров
Идем в системные настройки (шестеренка в правом верхнем углу), выбираем HybridAuth
и прописываем все ключи, при прописывании смотрите внимательнее, так как где то secret, где, то id.
Вызов HybridAuth
[[!HybridAuth]] — Выведет все иконки соц сетей для авторизации.
Если вам нужны определенные соц сети, то их можно указать в параметре &providers, вот так.
[[!HybridAuth? &providers=`Twitter,Vkontakte,Google` ]]
[[!HybridAuth? &providers=`Twitter,Vkontakte,Google` ]] |
Важно. Так же желательно указать группу, куда попадает пользователь после авторизации, в противном случае он попадет в группу аноним (не сможет не чего делать на сайте). Для того чтобы пользователь попал в другую группу, нужно добавить параметр &groups, пример.
[[!HybridAuth? &providers=`Twitter,Vkontakte,Google` &groups=`member:3` ]]
[[!HybridAuth? &providers=`Twitter,Vkontakte,Google` &groups=`member:3` ]] |
Как создать группу для пользователей на примере тикета, я писал здесь.
MODX Revo - дельные советы: Авторизация через facebook в hybridauth modx
Приветствую вас, уважаемые читатели!
Сегодня боги послали мне установку модуля авторизации через социальные сети под названием HybridAuth в MODX Revo. Требовалось настроить доступ через две популярные соц.сети - Facebook и Вконтакте.
Итак, сниппет вставлен, количество иконок сокращено до двух. Пришло время получать ключи приложений. Регистрация как разработчик в этих сетях прошла успешно. Вконтакте настроилось сразу по имеющейся документации. Facebook предварительно тоже не подавал никаких признаков капризности и брыкания, хотя документация к установке устарела и пришлось вводить параметры интуитивно. Кнопка like в виде пробного кода вставилась и успешно заработала. Пришло время настройки приложения HybridAuth.
Тут с facebook начались проблемы. При нажатии на кнопку авторизации "f" вылезла ошибка: Given URL is not whitelisted in Client OAuth Settings.После прочтения отзывов в магазине приложений, и различных форумов, попыток ввести адреса с различными префиксами и ключами итог был один - та же самая ошибка. Затем я плюнул и решил попробовать вставить голый адрес сайта - http://sitename.com. (хотя чуть позже нашел на одном сайте шаблон заполнения такой http://mywebsite.com/path_to_hybridauth/?hauth.done=Facebook)
Тыдыщ - ошибка исчезла. Правда появилась другая.
Invalid Scopes: read_streamСоциальная сеть Facebook часто обновляет свой API и поэтому могут возникать такие ошибки. Как оказалось в дальнейшем, параметр который запрашивал сниппет HybridAuth был относительно недавно (пол года назад) переименован. Параметр этот отвечает за чтение ленты пользователя и мне триста лет не нужен.
Дай думаю гляну что HybridAuth вообще запрашивает. Мне достаточно пока имени и почтового ящика. Открыл файл/core/components/hybridauth/model/hybridauth/lib/Providers/Facebook.php
который отвечает за работу с Facebook и увидел список голубчиков:
public $scope = "email, user_about_me, user_birthday, user_hometown, user_location, user_website, read_stream, publish_actions, read_custom_friendlists";Недолго думая решил удалить виновника торжества - read_stream из списка (к тому же это прямым текстом разрешается и приветствуется в комментарии к коду пару стручками выше:
Теперь уже все запрашиваемые параметры годны, запросить их у пользователя можно, но большинство из них не авторизовано данной соц.сетью для этого приложения. Предлагается провести проверку приложения в целом на соответствие необходиомсти всех этих запросов.Но уже хорошо, видна кнопка confirm. После подтверждения все работает. Мисиия выполнена.
Думаю, кучу всех этих лишних параметров можно смело удалять, а оставить только 2 основных - email и public_profile. Остальное ликвидировать из сниппета.
Но это, возможно, опишем в следующей статье. Спасибо за внимание)
modxrevolution.blogspot.com
Авторизация через соц сети на Modx Revolution, настройка HybridAuth
Добрый день!
Сегодня я решил написать статью о том, как реализовать на сайте регистрацию через социальные сети. Понадобилось мне это для того, чтобы упростить схему комментирования статьи. Буду показывать на примере своего сайта.
До:
После:
HybridAuth это приложение для авторизации через соц. сети и другие сервисы, разработанный Василием Наумкиным (@bezumkin). Главным достоинством HybridAuth для ModX Revo является то, что взаимодействие с сервисами проходит без каких-либо посредников, а также возможность объединять несколько аккаунтов разных социальных сетей в один профиль на Вашем сайте под управлением ModX Revo.
Выделим задачи с которыми HybridAuth справляется на 5+:
Авторизация на сайте с помощью социальных сетей в один клик
Загрузка имени, логина и адреса электронной почты с аккаунта через который происходит авторизация
Вывод аватарки через Gravatar или из сервиса с помощью которого авторизовались
Объединение нескольких аккаунтов соц.сетей в один профиль на сайте
Настройка HybridAuth на ModX для авторизации через социальные сети
1. Итак, для установки нашего приложения нажимаем в главном меню Modx Приложения -> Установщик -> Загрузить дополнения -> В поиске вбиваем HybridAuth и устанавливаем.
2. Далее переходим Настройки -> Системные настройки -> фильтруем по HybridAuth
Добавляем свой сайт как приложение в нужных вам социальных сетях для получения индивидуального номера и ключа авторизации. Для этого переходим по ссылкам, которые указаны в комментариях.
3. Далее, в месте где вы хотите вывести форму авторизации, вставляем этот код. В моем случае, это чанки формы комментариев для незарегистрированных пользователей.
[[!HybridAuth?&providers=`Vkontakte, Facebook`]]
Перечисляем нужных нам провайдеров через запятую.
4. Далее переходим в раздел Чанки -> tpl.HybridAuth.profile и tpl.HybridAuth.logout и в месте вывода фото меняем значение на [[+photo]] делается это для того чтобы подгружались аватарки из соц сетей.
tpl.HybridAuth.logout
tpl.HybridAuth.profile
5. Для вывода личного кабинета создадим новый документ Личный кабинет и в поле контент вызовем сниппет [[!haProfile]]
Личный кабинет на Modx Revo
На этом все. Как видите ничего сложного в настройке нет.
Желаю всем удачи. До новых встреч!!)
Если статья понравилась, то поделитесь ей в социальных сетях:
foxtan.ru
Авторизация через соц.сети в MODX: hybridauth
Как мы знаем посетители сайта не любят авторизоваться на сайте методом простой регистрации. Сам процесс пользователю противен.
Ведь, чтобы зарегистрироваться ему нужно ввести как минимум email и пароль, затем подтвердить регистрацию через почту. Это отпугивает пользователя, и он не зарегистрируется на сайте, конечно если это для него важно.
Поэтому на сегодняшний день актуально авторизоваться на сайте через социальные сети в один клик. Это очень удобно и многие пользователи будут регистрироваться на сайте
Для этого в MODX Revo есть хороший компонент hybridauth. Его функционал позволяет:
- Авторизоваться на сайте в один клик, через любые социальные сети.
- Подгружает из соц. сетей: Имя, email и логин.
- Для аватарок пользователей использует сервис Gravatar
- Объединение соц.сетей в одном аккаунте
Последний пункт очень полезен - ведь посетитель сможет объединять аккаунты всех социальной сетей на вашем сайте и спокойно заходить под своим пользователем на сайт через любую сеть
Установка и настройка hybridauth
Загрузите и установите компонент через административную панель сайта. (Приложения -> Установщик)
Далее надо будет вызвать его в нужном месте, где у вас будут авторизоваться пользователи. Там и будут показываться иконки соц. сетей.
Вы сможете выводить только нужные соц. сети, для этого укажите их параметре:
[[!HybridAuth? &providers=`Twitter,Facebook,Vkontakte` ]]Также важно указать, в какую группу пользователей попадёт наш посетитель после авторизации:
[[!HybridAuth? &providers=`Twitter,Facebook,Vkontakte` &groups=`Users:2` ]]Настройка провайдеров.
Чтобы авторизоваться через соц. сети, необходимо в каждом из них зарегистрировать свой сайт. Затем получить ключи и ввести их в админке сайта.
К примеру «Вконтакте» можно по этой ссылке.
Получив ключ, переходим в раздел «Настройки системы», фильтруем по «hybridauth» и вбиваем полученные ключи.
Параметры HybridAuth
&activeProviderTpl | tpl.HybridAuth.provider.active | Чанк для вывода иконки привязанного сервиса. |
&addContexts | Дополнительные контексты, через запятую. Например, &addContexts=`web,ru,en` | |
&groups | Список групп для регистрации пользователя, через запятую. Можно указывать роль юзера в группе через двоеточие. Например, &groups=`Users:1` добавит юзера в группу "Users" с ролью "member". | |
&loginContext | current context | Основной контекст для авторизации. По умолчанию - текущий. |
&loginResourceId | 0 | Идентификатор ресурса, на который отправлять юзера после авторизации. По умолчанию, это 0 - обновляет текущую страницу. |
&loginTpl | tpl.HybridAuth.login | Этот чанк будет показан анонимному пользователю, то есть любому гостю. |
&logoutResourceId | 0 | Идентификатор ресурса, на который отправлять юзера после завершения сессии. По умолчанию, это 0 - обновляет текущую страницу. |
&logoutTpl | tpl.HybridAuth.logout | Этот чанк будет показан авторизованному пользователю. |
&providerTpl | tpl.HybridAuth.provider | Чанк для вывода ссылки на авторизацию или привязку сервиса к учетной записи. |
&providers | all available | Список провайдеров авторизации, через запятую. Все доступные провайдеры находятся тут {core_path}components/hybridauth/model/hybridauth/lib/Providers/. Например, &providers=`Google,Twitter,Facebook`. |
&rememberme | 1 | Пользователя остаётся авторизованным долгое время. По умолчанию - включено. |
daruse.ru
Настройка HybridAuth: Авторизация через социальные сети
Долгая и длинная регистрация на сайте с огромным количеством заполняемых полей и вопросов уже далеко в прошлом! Почти на каждом интернет сайте можно встретить рядом с кнопкой регистрации, кнопку «войти с помощью социальной сети». Авторизация через ВКонтакте, Твиттер, Фейсбук и другие сервисы намного упрощают и облегчают процесс регистрации пользователя всего до нескольких кликов, в итоге посетители сайта экономят время, а легкость регистрации на сайте наверняка увеличит количество пользователей на Вашем проекте. Сегодня мы сделаем на сайте под управлением ModX авторизацию через социальные сети с помощью компонента HybridAuth.
Немного о компоненте HybridAuth для ModX
HybridAuth это компонент для авторизации через социальные сети и другие сервисы, разработанный Василием Наумкиным (@bezumkin) о котором я упоминал в предыдущей статье. Основными преимуществами HybridAuth для ModX Revolution является работа с сервисами без каких-либо посредников, а также возможность объединения нескольких аккаунтов в социальной сети в один профиль на Вашем сайте под управлением ModX.
Таким образом задачи с которыми превосходно справляется HybridAuth:
- Авторизация на сайте с помощью социальных сетей в один клик
- Подгрузка имени, логина и адреса электронной почты с аккаунта через который происходит авторизация
- Вывод аватарки через Gravatar или из сервиса с помощью которой авторизовались
- Объединение нескольких аккаунтов соц.сетей в один профиль на сайте
Установка HybridAuth
Для того чтобы установить HybridAuth на Вашем сайте нужно подключить магазин дополнений ModStore. (Внимание, если у Вас уже подключен репозиторий ModStore, этот шаг вы можете пропустить)Итак переходим по ссылке и регистрируемся на сайте, после чего активируете аккаунт с помощью письма на почте, там же Вы и получите пароль. Далее логинимся и переходим в личный кабинет во вкладку «Ключи» и если там еще не подключен Ваш сайт, нажимаем сгенерировать новый ключ. После этого во всплывающем окне у Вас появится ваш логин и сгенерированный ключ которые нужно записать где-нибудь.
Далее необходимо зайти уже на Ваш сайт в панель управления сайтом (/manager) в раздел Система — Управления пакетами, далее переключиться на кладку «Поставщики» и создать нового поставщика. При создании нового поставщика необходимо указать следующее:
- Имя — modstore.pro
- Url сервиса — https://modstore.pro/extras/ или http://modstore.pro/extras/
- Имя пользователя — ваша электронная почта, при помощи которой вы авторизуетесь на этом сайте.
- Ключ API — ваш свежесгенерированный ключ доступа.
- Описание — необязательное поле.
Сохраняемся и переходим на вкладку «Пакеты», далее необходимо выбрать нового поставщика, это можно сделать «Загрузить дополнения». Вы увидите домашнюю страницу репозитория, и сможете загрузить нужные пакеты. Теперь находим там пакет HybridAuth и устанавливаем как обычный пакет который ставили до этого.
Настройка HybridAuth
После того как мы установили компонент, нам нужно его настроить. Начнём мы с размещения кнопки авторизации и ее настройки. Для ее вывода нужно разместить в шаблоне вот такой код:
[[!HybridAuth? &providers=`Vkontakte` &groups=`Member` ]]
[[!HybridAuth? &providers=`Vkontakte` &groups=`Member` ]] |
В пункте &providers вы можете указать сервисы через которые пользователи могут авторизироваться на сайте, или убрать эту строку и тогда посетителю будут предложены варианты авторизации через все соц.сети доступные в компоненте. Обязательно наличие строки &groups в которой Вы указываете в какую группу попадет пользователь после авторизации, если строку не указать, есть вероятность, что пользователь попадет в группу «Аноним» и не сможет что-либо делать на сайте. Сохраняем шаблон и переходим к самому важному, получению ключей для авторизации в самих сервисах.
Ссылки на подключения всех провайдеров доступны в документации по компоненту, а сами ключи нужно вводить в панели управления, для этого заходим в менеджер нажимаем на шестеренку справа вверху и выбираем «Системные настройки», далее в фильтре выбираем HybridAuth и попадаем на страницу настройки ключей, выбираем нужный ключ и нажимаем правой кнопкой для редактирования, заполняем полученные данные из сервиса и вуаля все работает!
Настройка HybridAuth на ModX для авторизации через социальные сети
3.75 (75%) Проголосовало: 4
comments powered by HyperCommentsdmigorevich.ru