Скрипт позволяет входить на сайт или регистрироваться через социальные сети. При регистрации пользователю необходимо ввести логин и пароль.
Все возможные данные - Имя, Фамилия, Пол, E-Mail адрес, Дата рождения, Фото - подхватываются с социальной сети.
Для установки скрипта скопируйте файлы из архива на ваш сайт с заменой и выполните запрос в Базе Данных:
ALTER TABLE `users` ADD `social` TEXT NOT NULL;
ALTER TABLE `users` ADD `social_token` VARCHAR(32) NOT NULL;
Для работы скрипта необходимо ввести данные приложений, зарегестрированных в каждой из соц. сетей, в файле social_auth.php. Не нужные соц. сети можно убрать.
Если у вас изменены файлы которые заменяет скрипт, перенесите изменённый код в свои файлы.
Скриншот. Я не дизайнер, сделал иконки как мог(применяется CSS-спрайты). Размер иконок 32x32. Ещё есть пак иконок 48х48 и 64х64. Я просто подбирал какие лучше подойдут. Меньше не делал так как там практически ничего не видно и сложно в них попасть(с телефона например).
Теперь детальнее про сам скрипт: используется отдельная
библиотека для работы с АПИ соц сетей - /incfiles/lib/SocialAuther. По этому необходимо для каждой из соц сетей создавать приложение. По другому соц сети не отдадут данные пользователя. О том как создавать приложения напишу ниже.
Не используемые соц сети рекомендуется закомментировать или удалить. В файле social_auth.php(в самом начале), login.php(строка 23-31) и /users/includes/profile/settings.php(строка 107-115).
Про изменения в файлах. Про
login.php и
settings.php написано выше. В
exit.php добавлена одна строка(20):
setcookie('soctoken', '');
Файл
registration.php - изменений довольно много. Вроде бы все прокомментировал, проблем быть не должно.
Файл
/incfiles/core.php 28 строка:
spl_autoload_register('autoload', '', true);
Необходимо было немного изменить вызов функции автолоадера классов(точнее регистратора функции автолоадера классов).
Файл
/incfiles/classes/core.php - строка 333-339 и строка 346. Это как раз сама авторизация пользователя через соц. сеть.
Все про создание приложений.
ВКонтакте:
Шаг 1. Создание нового приложения:
- название: "SocialAuther"
- тип: "Веб-сайт"
Шаг 2. Настройка секции "Open API":
- адрес сайта: httр://ваш_сайт/social_auth.php?provider=vk
- базовый домен: "httр://ваш_сайт"
Шаг 3. Конфигурация параметров client_id, client_secret и redirect_uri:
- client_id - содержится в опции "ID приложения". Пример: 3078654
- client_secret - содержится в опции "Защищенный ключ". Пример: zrCHcmKAcBvblSUIBIwu
- redirect_uri - содержится в опции "Адрес сайта". Пример: httр://johncms.com/social_auth.php?provider=vk
Одноклассники:
Шаг 1. Создание нового приложения:
- Выбираем "Вне Одноклассников"
- Выбираем "oAuth авторизация"
Шаг 2. Настройка приложения:
- название: "SocialAuther"
- shortname: _www.odnoklassniki.ru/game/auther
- ссылка на приложение: httр://ваш_сайт/social_auth.php?provider=odnoklassniki
- "Ссылка на картинку" и "Ссылка на аватарку": ссылка на любое изображение
Шаг 3. Конфигурация параметров client_id, client_secret, redirect_uri, public_key. Всю нужную информацию вы найдёте в письме, которое было отправлено на вашу электронную почту после успешного добавления приложения:
- client_id - Application ID. Пример: 658606315
- client_secret - секретный ключ приложения. Пример: C35045020A8C7C066F25C4C7
- redirect_uri - ссылка на приложение. Пример: httр://johncms.com/social_auth.php?provider=odnoklassniki
- public_key - публичный ключ приложения. Пример: BAMKABABACADCBBAB
Mail.ru
Шаг 1. Создание нового приложения:
- соглашаемся с правилами
- название: "SocialAuther"
- адрес главной страницы: httр://ваш_сайт/social_auth.php?provider=mailru
Шаг 2. Настройка приложения:
- скачиваем предложенный файл receiver.html и помещаем в папку проекта
- для установки на локальный сервер, нажимаем "Пропустить"
Шаг 3. Конфигурация параметров client_id, client_secret, redirect_uri:
- client_id - ID. Пример: 670707
- client_secret - секретный ключ. Пример: a619062972f2073ded61405b8f8eccd2
- redirect_uri - адрес главной страницы. Пример: httр://johncms.com/social_auth.php?provider=mailru
Yandex
Шаг 1. Создание нового приложения
Шаг 2. Настройка приложения:
- Название: "SocialAuther"
- Права: "Яндекс.Логин - Адрес электронной почты; Дата рождения; Имя пользователя, ФИО, пол"
- Callback URI: httр://ваш_сайт/social_auth.php?provider=yandex
Шаг 3. Конфигурация параметров client_id, client_secret, redirect_uri:
- client_id - Id приложения. Пример: bff0bfcaef054ab66c0538b39e0a86cf
- client_secret - Пароль приложения. Пример: 219ba88d386b114b9c6abef7eab4e8e4
- redirect_uri - Callback URI. Пример: httр://johncms.com/social_auth.php?provider=yandex
Google
Шаг 1. Создание нового приложения:
- в меню выбираем "API Access"
- нажимаем на кнопку "Create an OAuth 2.0 Client ID..."
Шаг 2. Настройка приложения:
- API Access: "SocialAuther"
- Нажимаем Next
- Application Type: "Web application"
- Your site or hostname: httр://ваш_сайт
- Нажимаем Create client ID
Шаг 3. Конфигурация параметров client_id, client_secret, redirect_uri:
- client_id - Id приложения. Пример: 333739311538.apps.googleusercontent.com
- client_secret - Пароль приложения. Пример: lZB3aW8UG8gDj6WVIEIcidt5
- redirect_uri - Callback URI. Пример: httр://johncms.com/social_auth.php?provider=google
Facebook
Шаг 1. Создание нового приложения:
- Нажимаем на кнопку "+ Создать новое приложение"
- App Name: "SocialAuther"
- Нажимаем "Продолжить"
Шаг 2. Настройка приложения:
- Нажимаем "Website with Facebook Login"
- Вводим Site URL: httр://ваш_сайт/social_auth.php?provider=facebook
Шаг 3. Конфигурация параметров client_id, client_secret, redirect_uri:
- client_id - App ID. Пример: 346158195993388
- client_secret - App Secret. Пример: 2de1ab376d1c17cd47250920c05ab386
- redirect_uri - Callback URI. Пример: httр://johncms.com/social_auth.php?provider=facebook
С Google могут возникнуть проблемы. Если что пишите.
П.С.
В
http:// все
р - русские.
Для выполнения всех действий необходимо нажать только на одну кнопку. Если ваш аккаунт соц сети не привязан к аккаунту на сайте(привязать можно в
Настройках) то вы попадаете на Регистрацию. Если привязан происходит аутентификация.
На реализацию Регистрации ушло дня 3. Пробовал разные способы: начиная от автоматической регистрации - если аккаунта соц сети в базе нет, сразу добавляются данные и вас кидает уже зарегистрированного и авторизованного на index.php; и заканчивая тем что есть сейчас. А сейчас происходит редирект на страничку регистрации, где необходимо ввести логин и пароль. Все остальные данные подхватятся с соц сети. По желанию можно регистрацию переделать почти как угодно.
# MARAZM (16.06.2016 / 22:45)
зачёт.
Трудный зачет. Что самое интересное библиотека для работы с АПИ отказывается работать с движком(когда core.php подключаю). Пришлось решать как то эту проблему. Думал за день напишу такой скрипт и выложу. Но не тут то было.
Точнее даже там постоянно конфликт функций автолоадеров происходил. Из за этого то классы движка не подключались, то классы библиотеки.
хм что то мейл и фейсбук отказывается работать с доменом ru