# =========================================================================== #
# NG CMS // Плагины // auth_social - авторизация через соцсети                #
# =========================================================================== #
Плагин не является самостоятельным модулем авторизации, а работает лишь как
дополнение к одному из уже работающих плагинов, например auth_basic.
В данный момент поддерживается авторизация через: vk, yandex, google, facebook, github.
#=====================================#
Установка
#=====================================#
1. Зарегистрировать приложения в соцсетях (см. также https://github.com/stanislas-prime/SocialAuther).
В параметре redirect_uri укажите соответствующие URL:
https://sitename.ru/plugin/auth_social/?provider=vk
https://sitename.ru/plugin/auth_social/?provider=yandex
https://sitename.ru/plugin/auth_social/?provider=google
https://sitename.ru/plugin/auth_social/?provider=facebook
https://sitename.ru/plugin/auth_social/?provider=github
Примечание: для GitHub рекомендуется scope: read:user, user:email (для получения e‑mail).
2. Включить плагин. В настройках плагина, внести данные о приложениях в соц.сетях (client_id, client_secret, public_key)
3. В шаблоне usermenu.tpl прописать ссылки по которым будет осуществляться авторизация, например:
<a href="{{p.auth_social.vk.authUrl}}" title="{{p.auth_social.vk.title}}"><img src="/engine/plugins/auth_social/social/VK.png" alt="{{p.auth_social.vk.title}}"/></a>
<a href="{{p.auth_social.yandex.authUrl}}" title="{{p.auth_social.yandex.title}}"><img src="/engine/plugins/auth_social/social/ya.png" alt="{{p.auth_social.yandex.title}}"/></a>
<a href="{{p.auth_social.google.authUrl}}" title="{{p.auth_social.google.title}}"><img src="/engine/plugins/auth_social/social/G.png" alt="{{p.auth_social.google.title}}"/></a>
<a href="{{p.auth_social.facebook.authUrl}}" title="{{p.auth_social.facebook.title}}"><img src="/engine/plugins/auth_social/social/FB.png" alt="{{p.auth_social.facebook.title}}"/></a>
<a href="{{p.auth_social.github.authUrl}}" title="{{p.auth_social.github.title}}"><img src="https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png" alt="{{p.auth_social.github.title}}" style="width:32px;height:32px"/></a>
#=====================================#
Интеграция с профилем (плагин uprofile)
#=====================================#
При установке плагина в таблице users создаются новые поля: provider, social_id, social_page, sex, birthday
Данные в данных полях слабоструктурированы и могут либо вообще отсутствовать, либо их вид может различаться в зависимости от соц. сети.
1. \templates\ваш_шаблон\plugins\uprofile\users.tpl
{{ userRec.provider }} - тип. соц. сети.
{{ userRec.social_page }} - ссылка на профиль с социальной сети.
{{ userRec.sex }} - пол пользователя.
{{ userRec.birthday }} - дата рождения пользователя.
Пример вывода:
{% if (userRec.provider) and (userRec.social_page) %}
    <tr>
        <td>Профиль соцсети:</td>
        <td class="second">{{ userRec.social_page }}</td>
    </tr>
{% endif %}
{% if (userRec.provider) and (userRec.sex) %}
    <tr>
        <td>Пол:</td>
        <td class="second">{{ userRec.sex }}</td>
    </tr>
{% endif %}
{% if (userRec.provider) and (userRec.birthday) %}
    <tr>
        <td>Дата рождения:</td>
        <td class="second">{{ userRec.birthday }}</td>
    </tr>
{% endif %}
2. \templates\ваш_шаблон\plugins\uprofile\profile.tpl
{{ userRec.sex }} - пол пользователя.
{{ userRec.birthday }} - дата рождения пользователя.
Пример вывода:
<div class="label label-table">
    <label>Пол:</label>
    <input type="text" name="editsex" value="{{ userRec.sex }}" class="input" />
</div>
<div class="label label-table">
    <label>Дата рождения:</label>
    <input type="text" name="editbirthday" value="{{ userRec.birthday }}" class="input" />
</div>
