Кнопки авторизации через соц сети. Социальные сети без регистрации

Итак, приступим к технический части. Для этого мы создадим и настроим новое приложение в социальной сети. После чего напишем класс, который будет взаимодействовать с API «ВКонтакте»: устанавливать соединение и получать данные о пользователе. В результате проделанных действий, мы сможем авторизовать пользователя у себя на сайте.

Создаём новое приложение «ВКонтакте»

Перед тем, как писать код, нам нужно зарегистрировать новое приложение. Делается это просто, заходим в свой профиль, переходим в раздел приложения и в нем кликаем на кнопку «Управление». В этом разделе вы увидите список всех приложений, которыми вы пользуетесь и кнопку «Создать приложение», жмём по ней. Заполняем название и выбираем пункт «Веб-сайт».

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


Вот так просто и быстро регистрируется новое приложение «ВКонтакте». Теперь переходим в настройки и копируем ID приложения и защищенный ключ в блокнот. На этом работа с социальной сетью заканчивается.


Пишем класс для работы с API

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

Class VKAuth{ public $settings = array(); public $auth_status = false; public $user_info = array(); public function __construct($settings){ } public function auth($code){ } public function get_link(){ } }

  • settings – отвечает за хранение настроек для подключения к API;
  • auth_status – статус аутентификации, если пользователь пройдет, то значение изменяться на true;
  • В конструкторе мы будем принимать настройки для подключения, и сохранять в переменную settings;
  • auth – метод, который будет производить соединение с API и вытягивать нужные нам данные (принимает код для получения ключа доступа);
  • get_link – метод генерирующий путь ссылки для аутентификации.

Теперь давайте рассмотрим каждый из методов подробно:

1. Конструктор:

Как и было раннее оговорено, мы принимаем настройки и сохраняем их в переменную settings. Для надёжности проверяем наличие их при помощи функции isset().

Public function __construct($settings){ if(isset($settings["client_id"], $settings["client_secret"], $settings["redirect_uri"])){ $this->settings = $settings; } }

С начала мы проверяем наличие переменных code и settings. Если всё нормально, то формируем первый запрос, который будет состоять из массива данных, обёрнутых в две функции.

urldecode() – декодирует %## символы в url.

http_build_query() – генерирует строку запроса.

После того, как мы обратимся по сформированному адресу, нам в ответ придет json строка. Для удобства, получаемые данные мы преобразуем в массив, делается это путем передачи у функции json_decode() второго параметра true. Данный массив будет содержать три ячейки: access_token, expires_in и user_id.

Идём дальше, проверяем наличие токена и формируем новый запрос на получение данных пользователя. В нашей функции мы будем сохранять: id, имя, фамилию и аватарку. Для этого через запятую в ячейку fields поместим строку с параметрами «uid,first_name,last_name,photo_100». Какие ещё данные пользователя можно получить описаны в документации объекта user . Обращаемся по новой ссылке и получаем ответ в виде массива. Проверяем наличие принятых данных и сохраняем их в переменную user_info (принятый массив является многомерным, данные будут храниться в нулевой ячейке response), а так же значение auth_status меняем на true и возвращаем true.

Public function auth($code){ if($code && $this->settings){ $query = urldecode(http_build_query(array("client_id" => $this->settings["client_id"], "client_secret" => $this->settings["client_secret"], "code" => $code, "redirect_uri" => $this->settings["redirect_uri"]))); $token = json_decode(file_get_contents("https://oauth.vk.com/access_token?".$query), true); if(isset($token["access_token"])){ $query = urldecode(http_build_query(array("uids" => $token["user_id"], "fields" => "uid,first_name,last_name,photo_100", "access_token" => $token["access_token"]))); $this->user_info = json_decode(file_get_contents("https://api.vk.com/method/users.get?".$query), true); if(isset($this->user_info["response"]["uid"])){ $this->user_info = $this->user_info["response"]; $this->auth_status = true; return true; } } } return false; }

Первым делом проверяем наличие настроек, а далее формируем путь для ссылки. Функции, которые используются, описаны выше. Когда пользователь нажмёт на ссылку с этим путём, то его перебросит на страницу c параметром code в адресной строке – код для получения токена.

Public function get_link(){ if($this->settings){ $query = urldecode(http_build_query(array("client_id" => $this->settings["client_id"], "redirect_uri" => $this->settings["redirect_uri"], "response_type" => "code"))); return "https://oauth.vk.com/authorize?".$query; } return false; }

Простая авторизация

На этом этапе – всё довольно рационально. После того как вы подключите класс к файлу, останется получить экземпляр VKAuth, передав ему настройки. Ниже описываем простой обработчик, который отлавливает переменную $_GET и проверяем аутентификацию.

Require_once("VKAuth.php"); $vk = new VKAuth(array("client_id" => "ID_приложения", "client_secret" => "защищенный_ключ", "redirect_uri" => "адрес_сайта")); if(isset($_GET["code"])){ if($vk->auth($_GET["code"])){ // Делаем свои дела } }

Далее, чтобы произвести авторизацию, вам нужно будет проверить наличие пользователя у себя в базе данных и, если его нет, то добавить. В противном случае обновить его данные (перед обновлением желательно проверить - изменились ли они). Касательно базы данных обычно добавляют два поля: тип авторизации и id пользователя в социальной сети. Вот так осуществляется аутентификация и авторизация через социальную сеть «ВКонтакте».

В архиве вы найдёте готовый пример работы с классом VKAuth, где выводятся данные пользователя.

С помощью аккаунта в социальной сети ВКонтакте, Одноклассники, Mail.ru, Facebook, Twitter или Google можно авторизовываться на Яндексе без регистрации и ввода пароля. Для этого достаточно нажать логотип вашей социальной сети на форме:

Пример авторизации через Facebook

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


Использованный аккаунт Facebook появится на странице в Яндекс.Паспорте, а на сервисах Яндекса будет отображаться имя, полученное из социальной сети.

Вопросы и ответы

Зачем заводить логин и пароль на Яндексе?

Логин и пароль на Яндексе могут быть необходимы для доступа к некоторым сервисам - например, для использования Почты или Диска.

Что делать, если я забыл пароль от социальной сети и не могу войти на сервисы Яндекса?

Как назвать сотруднику службы поддержки Яндекса свой логин

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



Безопасна ли авторизация через социальную сеть?

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

Пользователи предпочитают авторизироваться мгновенно, в один клик, и не затрачивать время на регистрацию через электронную почту. Всю суть данной проблемы могут понять люди, использующие данную платформу для продажи товаров в интернет-магазине .
WordPress по умолчанию не предоставляет возможности входа через социальные сети. Если пользователь желает, чтобы его клиенты заходили таким способом, ему придется приобрести платные разработки или использовать специальный бесплатный плагин. Простота регистрации и вход через социальные сети на любом сайте на wordprees очень важны. Если Вы предложите посетителям проделывать данную процедуру путем заполнения целого ряда полей с помощью электронной почты, то наверняка потеряете массу потенциальных клиентов.
В данной статье подобраны 10 плагинов входа через социальные сети для Wordpress , которые позволят Вашему сайту стать удобным и выглядеть профессионально. Для желающих собственными руками создать виджет с социальными кнопками, рекомендуем ознакомиться с материалами по теме .

Social Login

Это бесплатный комплексный WordPress плагин , который предлагает простое решение входа и регистрации на сайте через социальные сети. Для него доступна авторизация через такие ведущие сайты, как Facebook, Twitter, Google, LinkedIn, PayPal, LiveJournal, Instagram , Yahoo, ВК и многие другие. Всего он объединяет более 25 популярных сетей, с помощью которых можно войти, зарегистрироваться или оставить свой комментарий.
Данный плагин полностью совместим с BuddyPress , поэтому можно использовать логин практически из любой социальной группы, что является очень актуальным решением. Виджет входа размещается в боковой панели вашего сайта, или используется шорткод.

Super Socializer

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

Nextend Facebook Connect

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

WordPress Social Login

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

Social Login for WordPress

Еще один мощный WordPress плагин, способный интегрировать социальные сети с WordPress . Данный сервис платный, и работа с ним осуществляется на основе подписки, но любой пользователь может использовать 30-и дневный бесплатный период для тестирования. Это даст возможность проверить, насколько этот плагин подходит для Ваших целей. Social Login for WordPress великолепно интегрируется со всеми популярными сетями, позволяя оставлять , а также производить авторизацию на сайте. Он способен захватывать данные профиля пользователя с его разрешения и автоматически создавать профиль в базе данных WP.

Gigya – Social Infrastructure

Еще один очень простой в использовании WordPress плагин, который поможет интегрировать социальные аккаунты с сайтами на базе WordPress . Плагин имеет красивые , и с ним Вы можете настроить необходимые кнопки, согласно своему желанию.

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

В данной инструкции мы рассмотрим, как настроить авторизацию через следующие социальные сети:

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

ВКонтакте

Нажмите на кнопку «Создать приложение». Откроется страница входа в аккаунт «ВКонтакте»:

Придумайте название приложения и нажмите на кнопку «Создать». На новой странице укажите подробную информацию о приложении. Она будет отображаться при регистрации пользователей (запросе разрешений):

После сохранения изменений перейдите в настройки приложения и скопируйте «ID приложения» и «Защищенный ключ»:

Скопированные значения укажите в панели управления сайтом и нажмите на кнопку «Сохранить»:

Теперь вернитесь к настройкам приложения на сайте «ВКонтакте» и заполните данные:

  • «Open API» - включен;
  • «Адрес сайта» и «Базовый домен» - ваш прикрепленный домен.

Приложение готово к использованию. Выполните авторизацию с помощью социальной сети «ВКонтакте» и проверьте, как отображаются указанные в приложении данные.

Facebook

Нажмите на кнопку «Создать приложение» и на открывшейся странице выполните вход в личный кабинет социальной сети Facebook.

Затем нажмите на кнопку «Зарегистрироваться»:

Для регистрации потребуется подтвердить аккаунт, указав номер телефона:

Заполните анкету приложения и нажмите на кнопку «Создайте идентификатор приложения»:

Скопируйте «Идентификатор приложения» и «Секрет приложения». Их нужно указать в панели управления сайтом в полях «Client ID» и «Client secret» соответственно:

Из панели управления скопируйте «Redirect URIs»:

Теперь на сайте разработчиков Facebook выберите пункт «Настройка» в левом меню и на открывшейся странице перейдите на вкладку «Дополнительно»:

На странице найдите «Действительные URL-адреса для перенаправления OAuth» и вставьте в поле полученный ранее URL:

Яндекс

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

Установите следующие права для приложения:

  • Доступ к дате рождения;
  • Доступ к адресу электронной почты;
  • Доступ к логину, имени и фамилии, полу.

Скопируйте из панели управления сайтом «Callback URI», укажите его в поле «Callback URL» приложения и нажмите на кнопку «Сохранить»:

Скопируйте ID и пароль приложения:

Укажите эти данные в панели управления сайтом:

Приложение готово к использованию.

Google+

Нажмите на кнопку «Создать приложение» и на открывшейся странице выполните вход в личный кабинет социальной сети Google+.

На открывшейся странице выберите «Google+ API»:

Чтобы включить API, нужно создать проект. Нажмите на кнопку «Создать проект»:

Заполните анкету проекта, примите условия использования, после этого нажмите на кнопку «Создать»:

Теперь можно включить API:

И приступить к созданию приложения:

Создание приложения состоит из четырех шагов:

1. Выбираем тип учетных данных:

2. Создаем идентификатор клиента OAuth 2.0, указываем адрес домена и разрешенный URI перенаправления (скопированный из панели управления):

3. Заполняем информацию о приложении - она будет показана пользователю при регистрации:

4. Нажимаем «Готово»:

Наше приложение готово к работе. Зайдем на его страницу. Для этого нажмите в левой колонке на «Учетные данные» и выберите приложение из списка:

Скопируйте идентификатор и секрет клиента, чтобы указать их в панели управления сайтом:

Twitter

Нажмите на кнопку «Создать приложение» и на открывшейся странице выполните вход в личный кабинет социальной сети Twitter. Для создания приложения потребуется ввести и подтвердить свой телефонный номер (

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

Причин, по которым пользователи отказываются от стандартной регистрации на сайте, можно насчитать не один десяток, однако из них можно выделить основные:

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

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

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

Способы авторизации через социальные сети для владельцев сайтов

Для организации авторизации на сайте через соцсети можно воспользоваться специальными сервисами, которые могут быть как платными, так и бесплатными, а так же использовать на своем сайте специальные расширения. А можно пойти другим путем и написать собственное расширение, если Вы знакомы с языком PHP.

Вариантов организации входа на сайт через социальные сети хватает.

Сервисы авторизации

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

Наиболее популярные и распространенные сервисы авторизации - Slogin, ULogin и Loginza. Оба этих сервиса предлагают плагины практически для всех CMS, что делает их еще более привлекательными для новичков.

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

Преимущества:

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

Недостатки:

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

Компоненты и создание собственного приложения в социальной сети

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

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

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

Безопасна ли авторизация через социальные сети

Многие пользователи относятся с недоверием к такому роду авторизации - боятся, что их данные могут украсть и тем самым взломать ту или иную социальную сеть. Однако смею вас заверить, что авторизация через социальные сети совершенно безопасна , никто не украдет ваши данные. Чтобы в этом убедиться, давайте разберем процесс авторизации, что в это время происходит, и какие данные передаются.

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

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

Таким образом, можно сделать вывод, что авторизация через социальные сети совершенно безопасна , я бы даже сказал гораздо более безопасная стандартной регистрации на сайте.

Плюсы и минусы авторизации через социальные сети

  • Пользователям сайта нет необходимости заполнять регистрационные данные и придумывать новые логин и пароль
  • Вход на сайт по средствам социальных сетей происходит гораздо быстрее
  • Получение данных о пользователе

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