Что за авторизация на Одноклассниках и Вконтакте

Часто на сайтах вам могут предложить войти с помощью Google, Facebook или ВКонтакте. Если у вас есть аккаунт в одном из этих сервисов, вам не нужно будет регистрироваться с нуля: заполнять имя, почту и ставить свою фотографию — всё это будет сделано автоматически. Разберёмся, как это работает и насколько это безопасно.

Это история о технологии OAuth2.

В Яндекс можно войти через Гугл. Как тебе такое, юзернейм?

Для чего это нужно

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

Параллельно с этим в интернете есть сервисы, которыми пользуются все: Яндекс, Гугл, фейсбук или Вконтакте. Почему бы не брать данные о пользователе с этих сервисов?

Для этого и придумали OAuth.

Как найти человека в Одноклассниках без регистрации и авторизации

OAuth — это как договор между сайтами

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

«Мы даём друг другу данные вот в таком формате, мы принимаем их в этом формате, мы друг другу доверяем».

Эти договорённости закрепили в едином стандарте авторизации — OAuth. В нём написано, как выдавать пропуска, как их проверять и что делать в разных случаях.

Как работает единая авторизация

Для пользователя всё выглядит просто: нажал «Войти через Яндекс», подтвердил Яндексу своё желание войти на нужный сайт, и всё — вы уже зарегистрировались на новом сайте и можете им пользоваться. Но что происходит под капотом?

Когда посетитель, например, сайта о программировании, нажимает «Войти через Яндекс», этот сайт отправляет в Яндекс запрос и говорит: «Тут кто-то хочет войти на мой сайт через ваш сервис, можете разобраться?»:

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

Как только посетитель вводит свой логин и пароль, Яндекс узнаёт его и спрашивает, доверяет ли он этому сайту о программировании и может ли Яндекс поделиться с сайтом данными о его имени и почте:

Дальше Яндекс отдаёт ваши данные сайту, он вас узнаёт, и готово:

Еще по теме:  Мы не можем быть друзьями 13 серия Одноклассники

Насколько это безопасно

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

Когда вы будете входить через OAuth, сервис вам скажет: «Вот какие данные у меня запрашивают. Давать доступ?». Когда вы разрешите доступ, эти данные перейдут на сайт. Откажетесь — не перейдут.

Разблокируем Вконтакте, Одноклассники, Mail.ru, Яндекс

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

✅ Через OAuth нельзя отправить сообщения от вашего имени или сделать пост в вашей ленте новостей. Но, опять же, если это не OAuth, а отдельное приложение для фейсбука или VK, то возможно и такое. Помните все эти игры, которые постят от имени игроков «Я собрал капусту на своей ферме»? Вот это они.

✅ Через OAuth точно не передаётся ваш пароль от Яндекса, Гугла и других сервисов. Сервисы хранят пароли в зашифрованном виде, поэтому даже при всём желании не смогли бы его передать.

Можно ли этому доверять?

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

⚠️ Во всех важных сервисах включайте двухфакторную авторизацию: чтобы не только вводить пароль, но и получать СМС.

⚠️ Если сервис поддерживает приложение-аутентификатор — используйте его. Например, в Яндексе есть «Ключ», а в Гугле — Authenticator. Это специальные приложения, которые создают дополнительный слой защиты поверх вашего логина и пароля.

⚠️ Если вы только что пользовались сервисами Яндекса или Гугла и тут вас просят вновь ввести логин и пароль — закройте эту страницу. Яндекс и Гугл помнят вас и не попросят пароль лишний раз.

Источник: dzen.ru

Безопасна ли авторизация на сайте через ВКонтакте и другие соцсети?

social login api

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

Первый вопрос, возникающий у не сталкивавшегося с этим человека: «Безопасна ли авторизация на сайте через ВКонтакте?». Согласно мировой статистике, наибольшее опасение за сохранность своих конфиденциальных данных выражают люди в возрасте 35-40+, а молодёжь уже давно привыкла к данному способу идентификации. Чтобы разобраться в нём, необходимо понять, какие сведения передаются.

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

Еще по теме:  Как закрыть комментирование фотографий в Одноклассниках

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

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

Как работает авторизация через социальные сети? Основной функционал API

Принцип Application Programming Interface заключается в использовании библиотек, предоставляемых третьими лицами. Взаимодействие происходит методом запросов и ответов. Попросили вход на веб-сайт? Увидели интерфейс для подтверждения, затем получили «зелёный свет» на вход. Быстро, просто и безопасно.

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

Надеюсь в той краткой статье удалось ответить на вопрос, безопасна ли авторизация на сайте через ВКонтакте. Да, совершенно.

Источник: gamenewsblog.ru

Авторизация на сайте с помощью ВК, простой и понятный способ на PHP!

Я заинтересовался как сделать авторизацию, почитав официальную документацию понял, что ничего не понял. и так давайте приступим.

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

1. Переходим на сайт https://vk.com/apps?act=manage и создаем новое приложение:

2. Заполняем следующие данные:
Название: Любое, его видно только во время авторизации, например авторизовавшись на нашем сайте с помощью ВК, Вы видите это, без количества участников.

Платформа: Выбираем «Сайт»
Адрес сайта: Ссылка на ваш сайт
Базовый домен: Ссылка на ваш сайт

Отлично, нажимаем подключить сайт.

3. Переходим в настройки приложения, копируем ID приложения и Защищенный ключ, сохраняем куда-нибудь и на этом работа на стороне ВК окончена, переходим к написанию скрипта.

4. Теперь самое интересное, нам нужно написать скрипт (обработчик), давайте создадим на нашем сервере в корне сайта файл auth.php и приступим к его редактированию. Хочу отметить, что на локальном сервере (OpenServer) авторизация работать не будет!

Открываем файл, я использую для этого PHPStorm и давайте создадим несколько переменных с пояснениями:

$client_id = 7157110; // ID приложения $client_secret = ‘ESlBJHmVMbeh8IVLiBDv’; // Защищённый ключ $redirect_uri = ‘http://royera.ru/auth.php’; // Адрес сайта

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

Далее формируем ссылку, которая будет ввести на сайт ВК с передаваемыми параметрами:

$url = ‘http://oauth.vk.com/authorize’; // Ссылка для авторизации на стороне ВК $params = [ ‘client_id’ => $client_id, ‘redirect_uri’ => $redirect_uri, ‘response_type’ => ‘code’]; // Массив данных, который нужно передать для ВК содержит ИД приложения код, ссылку для редиректа и запрос code для дальнейшей авторизации токеном

Еще по теме:  Ошибка обработки видео в Одноклассниках

Теперь можно открыть сайт скопировав $redirect_uri

Ссылка сформирована, теперь нужно получить и обработать ответ от ВК, после того как пользователь перешел по ссылке:

if (isset($_GET[‘code’])) < $result = true; $params = [ ‘client_id’ =>$client_id, ‘client_secret’ => $client_secret, ‘code’ => $_GET[‘code’], ‘redirect_uri’ => $redirect_uri ]; $token = json_decode(file_get_contents(‘https://oauth.vk.com/access_token’ . ‘?’ . urldecode(http_build_query($params))), true); if (isset($token[‘access_token’])) < $params = [ ‘uids’ =>$token[‘user_id’], ‘fields’ => ‘uid,first_name,last_name,screen_name,sex,bdate,photo_big’, ‘access_token’ => $token[‘access_token’], ‘v’ => ‘5.101’]; $userInfo = json_decode(file_get_contents(‘https://api.vk.com/method/users.get’ . ‘?’ . urldecode(http_build_query($params))), true); if (isset($userInfo[‘response’][0][‘id’])) < $userInfo = $userInfo[‘response’][0]; $result = true; >> if ($result) < echo «ID пользователя: » . $userInfo[‘id’] . ‘
‘; echo «Имя пользователя: » . $userInfo[‘first_name’] . ‘
‘; echo «Ссылка на профиль: » . $userInfo[‘screen_name’] . ‘
‘; echo «Пол: » . $userInfo[‘sex’] . ‘
‘; echo «День Рождения: » . $userInfo[‘bdate’] . ‘
‘; echo ‘‘; echo «
«; > >

После того как пользователь перешел по ссылке и подтвердил передачу данных, Вам на сервер в GET запросе вернется code, используя его мы запрашиваем у ВК токен пользователя, отправляем запрос в ВК с параметрами указанные в массиве

$params = [ ‘client_id’ => $client_id, ‘client_secret’ => $client_secret, ‘code’ => $_GET[‘code’], ‘redirect_uri’ => $redirect_uri ];

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

Теперь следующим запросом мы получаем данные о пользователе, используя его токен и обращаясь к API VK https://api.vk.com/method/users.get мы получаем json от VK, который мы можем распарсить. Давайте попробуем авторизоваться, заходим на нашу страницу и нажимаем авторизация:

Разрешаем и у нас на сайте появляются данные об аккаунте:

Авторизация работает. Далее можете сохранить ID в сессию и проверять авторизован пользователь или нет. Давайте доработаем код:

В самый конец добавляем:

$_SESSION[‘id’] = $userInfo[‘id’];

А ссылку заменяем на:

$client_id, ‘redirect_uri’ => $redirect_uri, ‘response_type’ => ‘code’]; // Массив данных, который нужно передать для ВК содержит ИД приложения код, ссылку для редиректа и запрос code для дальнейшей авторизации токеном if(empty($_SESSION[‘id’])) < echo «Вы уже авторизованы»; >else < echo $link = ‘

Аутентификация через ВКонтакте

‘; > if (isset($_GET[‘code’])) < $result = true; $params = [ ‘client_id’ =>$client_id, ‘client_secret’ => $client_secret, ‘code’ => $_GET[‘code’], ‘redirect_uri’ => $redirect_uri ]; $token = json_decode(file_get_contents(‘https://oauth.vk.com/access_token’ . ‘?’ . urldecode(http_build_query($params))), true); if (isset($token[‘access_token’])) < $params = [ ‘uids’ =>$token[‘user_id’], ‘fields’ => ‘uid,first_name,last_name,screen_name,sex,bdate,photo_big’, ‘access_token’ => $token[‘access_token’], ‘v’ => ‘5.101’]; $userInfo = json_decode(file_get_contents(‘https://api.vk.com/method/users.get’ . ‘?’ . urldecode(http_build_query($params))), true); if (isset($userInfo[‘response’][0][‘id’])) < $userInfo = $userInfo[‘response’][0]; $result = true; >> if ($result) < echo «ID пользователя: » . $userInfo[‘id’] . ‘
‘; echo «Имя пользователя: » . $userInfo[‘first_name’] . ‘
‘; echo «Ссылка на профиль: » . $userInfo[‘screen_name’] . ‘
‘; echo «Пол: » . $userInfo[‘sex’] . ‘
‘; echo «День Рождения: » . $userInfo[‘bdate’] . ‘
‘; echo ‘‘; echo «
«; > > $_SESSION[‘id’] = $userInfo[‘id’];

Авторизация через ВК готова! Скачать исходник можно ниже

Остались вопросы? Задавай в комментарии, всегда рады помочь!

  • Сергей Котов
  • 03.10.2019
  • 33 431
  • 24
  • 14

Источник: kotoff.net

Рейтинг
( Пока оценок нет )
Загрузка ...