Когда появилась система авторизации через соц сети. Вход с помощью социальных сетей

25.05.2019

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

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

Как зайти на Вконтакте или Одноклассники без регистрации?

Если основная задача перехода на соц. сети не регистрируясь – это поиск людей, то намного проще воспользоваться специальным сервисом от Яндекса. Перейдите по ссылке yandex.ru/people и вы попадете в специальный поиск по людям. Достаточно указать имя и фамилию, чтобы получить список:

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

Аналогичным образом можно провести поиск в любых других соц. сетях. При использовании Вконтакте можно и не переходить на Яндекс.Люди. Там поиск по пользователям открыт для всех. Введите в адресной строке vk.com/search и откроется нужная вам страница:

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

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

Одноклассники без регистрации

Просто перейдите на этот сайт и на главной странице вы увидите популярные записи и видеоролики:

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

Посещайте соц сети, несмотря на ограниченные функции, вы всё равно сможете просматривать профили и почти весь контент. Если этого вам будет недостаточно, но вы не хотите пользоваться своим профилем, то лучший вариант – это создание дополнительной страницы. Нет свободного номера телефона? Купите готовый аккаунт на Buyaccs.com. В этом интернет-магазине продаются профили почти от всех соц. сетей:

Стоимость зависит от того, насколько заполнен аккаунт и сколько на нем друзей. Оплачивать можно любыми способами, с банковских карт, электронными деньгами и даже перевести с баланса телефона (через Робокассу). Потратив немного денег, вы получите профиль и сможете использовать социальные сети без регистрации.

Такими сайтами как Вконтакте, Одноклассники, Facebook и Twitter пользуются в различных целях, но нельзя забывать, что все они подходят для удаленной работы. Узнайте и пользуйтесь ими, выполнив простейшие действия, вы легко получите небольшие деньги, чтобы купить себе аккаунты или оплатить мобильную связь.

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

Как происходит авторизация?

Авторизация ВКонтакте ничем не отличается от любой другой авторизации через сторонний сервер. Этот процесс отлично описал пользователь StackOverflow qnub :

  1. На сервисе (в данном случае ВК) необходимо зарегистрировать приложение и получить ключ API.
  2. После этого приложение (сайт) могут делать запрос личных данных пользователя у стороннего сервиса через этот самый API, для чего:
    • перенаправить пользователя (браузер пользователя посредством посылки ему HTTP-ответа 302 Redirect) по специально сформированной ссылке на сервис предоставляющий API;
    • пользователь произведёт там какие-то действия, предположительно авторизуется и разрешит доступ к данным.
  3. По завершении действий пользователь будет перенаправлен сторонним сервисом посредством всё того же 302 Redirect на URL переданный в параметрах специально сформированной ссылки .

Шаг первый. Зарегистрировать своё приложение и получить ключ

Этот шаг самый простой. Нужно перейти на страницу ВК для разработчиков: https://vk.com/dev - и нажать на кнопку «Создать приложение». Тип указываем как «Standalone-приложение», имя, естественно, указываем произвольное. После этого в разделе «Мои приложения» появится (что бы вы думали?) ваше приложение. Смело нажимайте «редактировать», затем переходите в раздел «Настройки» - там первой же строкой вы увидите надпись «ID приложения: 1234567 ». Эти цифры - всё, что вам нужно запомнить для авторизации.

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

Шаг второй. Формирование специальной ссылки

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

Этот процесс подробно описан в документации . Однако, если вы обратились к этой статье, я предполагаю, что вам не хватило информации в документации, и поэтому перескажу всё своими словами. Ссылка имеет следующий вид: хост?параметры. Параметры имеют вид нескольких пар вида ключ=значение разделённых символами & .

Хост всегда остаётся неизменным: https://oauth.vk.com/authorize . Набор параметров так же неизменен:

  • client_id . Здесь стоит указать те самые цифры, которые мы добыли в первом шаге.
  • redirect_uri . Адрес, по которому будет перенаправлен пользователь. Для Standalone приложений это только https://oauth.vk.com/blank.html .
  • display . Этот параметр отвечает за то, как будет показываться страница авторизации. Доступно три варианта: page , popup и mobile . Если не уверены, используйте page .
  • scope . В этом параметре вам следует через запятую перечислить параметры доступа, которые вам необходимы. Полный список доступных параметров приведён на соответствующей странице документации. Обращаю ваше внимание, что можно не указывать вообще ничего и просто не писать этот параметр. Чтобы узнать, какие опции доступа вам нужны посмотрите в документацию методов , которые вы собираетесь использовать.
  • response_type . Указываем token и идём дальше.
  • v . Версия API. Актуальная – 5.59 .

https://oauth.vk.com/authorize?client_id=1&display=page&redirect_uri=http://example.com/callback&scope=friends&response_type=token&v=5.59

Шаг третий. Что дальше?

http://REDIRECT_URI#access_token=TOKEN 3&expires_in=TIME &user_id=ID

Нас интересует TOKEN . Как же направить пользователя на страницу из Java-приложения и как получить адрес страницы, на которую его перенаправит ВК (чтобы извлечь из неё токен)? Существует два способа.

Если вы решили пойти по этому пути, то вы просто открываете браузер системы по умолчанию с полученной выше ссылкой, а пользователю каким-то образом сообщаете, что он должен скопировать из URL токен и вставить его в какое-то поле. Понятно, что у этого метода отвратительный UX, однако его можно реализовать легко и быстро. Вполне подойдёт, если вы пишете приложение для себя - чтобы скачать музыку или получать уведомления. Реализуется он следующим образом:

Public String askToken(String link) throws IOException, URISyntaxException{ //Opens link in default browser Desktop.getDesktop().browse(new URI(link)); //Asks user to input token from browser manually return JOptionPane.showInputDialog("Please input access_token param from browser: "); }

Буржуазный, через веб-компоненты

Если вы решили пойти по этому пути, то вам потребуется использовать какую-либо стороннюю GUI-библиотеку (или по крайней мере JavaFX), у которой в арсенале есть свой компонент браузера. Над таким бразуером ваша программа будет иметь полную власть, и вы сможете извлечь адрес, на который вас перенаправил ВК, программными средствами. На JavaFX это можно реализовать следующим образом:

Import javafx.application.Application; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.scene.Scene; import javafx.scene.web.WebEngine; import javafx.scene.web.WebView; import javafx.stage.Stage; public class Main extends Application{ public static final String REDIRECT_URL = "https://oauth.vk.com/blank.html"; public static final String VK_AUTH_URL = ""; //TODO!!! public static String tokenUrl; public static void main(String args){ System.out.println(Main.getTokenUrl()); } public static String getTokenUrl(){ launch(Main.class); return tokenUrl; } @Override public void start(Stage primaryStage) throws Exception { final WebView view = new WebView(); final WebEngine engine = view.getEngine(); engine.load(VK_AUTH_URL); primaryStage.setScene(new Scene(view)); primaryStage.show(); engine.locationProperty().addListener(new ChangeListener(){ @Override public void changed(ObservableValue observable, String oldValue, String newValue) { if(newValue.startsWith(REDIRECT_URL)){ tokenUrl=newValue; primaryStage.close(); } } }); } }

Заключение

Таким образом, мы научились получать access token ВКонтакте, с помощью которого можно вызывать методы API. Если эта статья вызовет у сообщества интерес, в следующей статье я опишу, как вызывать те или иные API-методы с помощью токена, как проверять токен на валидность (метод secure.checkToken() , конечно), и напишу какое-нибудь демонстрационное приложение, например, для сохранения всей музыки из плейлиста на компьютер. Кстати, не стоит забывать, что на самом деле всё придумано до нас, и уже есть библиотеки для работы с VK API почти для любого языка. У нас есть , в которой мы постарались собрать лучшие из них.

Если есть какие-то идеи или вопросы - добро пожаловать в комментарии (я их читаю и всем отвечаю). Так же вопросы можно задать

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

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

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


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

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

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

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

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

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

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



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

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

Итак, приступим к технический части. Для этого мы создадим и настроим новое приложение в социальной сети. После чего напишем класс, который будет взаимодействовать с 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, где выводятся данные пользователя.

Пользователи предпочитают авторизироваться мгновенно, в один клик, и не затрачивать время на регистрацию через электронную почту. Всю суть данной проблемы могут понять люди, использующие данную платформу для продажи товаров в интернет-магазине .
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, ВКонтакте, но и делают внешний вид ресурса очень привлекательным. Все модули, упомянутые в этом списке, широко используются, и они действительно эффективны. Вы можете выбрать любой из этих плагинов и начинать работу уже сейчас.