Пытаюсь реализовать регистрацию/авторизацию на своём сайте через соц. сеть. Не совсем понятен принцип работы и дальнейшая безопасность после авторизации. Изучил всё что тут написано: https://vk.com/dev/openapi Создал приложение, добавил JS VK к себе, добавил тот скрипт, что там прописан. Соединение проходит, возвращается ID, имя и т.д. (всё что запрошу).
Но как мне записать что-нибудь в БД, чтобы потом определить, что этот пользователь зарегистрирован/авторизован? Никакого хэша, который я бы мог использовать в этих целях, не возвращается.
Конечно, я могу после авторизации и получения ответа через JS, отправить AJAX-запрос к себе на сервер с ответом, который вернул ВК, но как проверить со стороны сервера, что авторизация прошла успешно и это не злоумышленник подсунул левый ID? Хочется сделать именно асинхронную авторизацию, чтобы после клика на кнопку проверились данные и прошла авторизация/регистрация, и при этом она была бы безопасной.
Смотрел серию уроков «PHP » Аутентификация через ВКонтакте» и читал другие темы по этим вопросам, но, в основном, везде рассматривается синхронная авторизация, где пользователь будет несколько раз перенаправлен на другие страницы сайта, а мне такой вариант не подходит. Допускаю только одно обновление страницы пользователя: только тогда, когда он уже авторизован/зарегистрирован. Всё остальное — в асинхронном режиме. Опять же, могу отправить ID пользователя к себе на сервер в свой скрипт, но как проверить его? Ведь у меня не будет параметра code , как в примере по ссылке выше и, соответственно, я не смогу отправить запрос для получения access_token . Поправка: параметр code нашёл, а вот параметра redirect_uri — нет, и VK отвечает так:
Вебинар: «Авторизация на своем сайте через VK API»
Делаю запрос так:
$params = array( ‘client_id’ => ‘тут ид моего приложения’, ‘client_secret’ => ‘тут ключ моего приложения’, ‘code’ => $_POST[‘user’][‘sid’], ‘redirect_uri’ => »); $token = json_decode(file_get_contents(‘https://oauth.vk.com/access_token’ . ‘?’ . urldecode(http_build_query($params))), true);
Понял, что процедуры серверного получения code не избежать. Начал делать по этим инструкциям: https://vk.com/dev/auth_sites Предварительно всё равно провожу клиентскую авторизацию и только при успехе отправляю запрос на сервер, который затем отправляет запрос для получения переменной code , но опять вылазит окно с требованием ввести логин/пароль VK (на этот раз его требует серверная авторизация), а не нормальный ответ.
В качестве redirect_uri указываю адрес вызываемого AJAX-файла, надеясь, что сервер VK вернёт туда $_GET[‘code’] , и следующем запросом я смогу уже получить access_token . Я так понимаю, окно с повторной авторизацией вылазит потому, что идёт проверка IP, которые не совпадают. Как быть? Не понимаю, почему бы не сделать один и тот же code -ключ при клиентской авторизации и при серверной, чтобы можно было связать воедино и добиться-таки доступа в одно обновление страницы пользователя (с вылезающем окном VK, это ничего), но не 3-4 редиректа, как предлагается при полностью серверной авторизации в документации. Или, может, что-то делаю не так (что вероятнее). Начал в PHP-файле делать так:
АВТОРИЗАЦИЯ В АККАУНТЕ VK ЧЕРЕЗ PYTHON
if (!isset($_GET[‘code’])) header(‘location: http://oauth.vk.com/authorize’ . ‘?’ . urldecode(http_build_query($params))); else echo $_GET[‘code’];
Теперь возвращается code при прямом открытии PHP-файла, а если он вызывается AJAX`ом, то там, понятное дело, ошибка после редиректа:
Источник: ru.stackoverflow.com
Как авторизоваться через VK?
Для авторизации нужно послать запрос на адрес https://oauth.vk.com/token , передав следующие POST -параметры:
- grant_type (обязательный параметр) — тип авторизации, должен быть равен password .
- client_id (обязательный параметр) — id вашего приложения.
Что такое внешние сервисы в ВК?
Сервисы VK Mini Apps — веб-приложения в нативном клиенте, позволяющие решать повседневные задачи или интересно проводить время, не выходя из ВКонтакте. Например, пополнять счёт транспортной карты, заказывать еду или такси, знакомиться с новыми людьми, искать работу или учить правила дорожного движения.
Как обращаться к API ВКонтакте?
Чтобы использовать все возможности API ВКонтакте, нужно зарегистрировать своё приложение. Встраиваемое приложение — вы получите приложение, которое можно встроить во фрейм с внешнего сайта. Готовые приложения можно увидеть в наших каталогах: Мини-приложения, Игры.
Как открыть API ВК?
Для вызова любого метода ВКонтакте API служит метод VK. Api. call, который принимает три параметра — название метода, объект, представляющий собой параметры, передаваемые в указанный метод, и callback-функцию, в которую будет передан результат вызова метода. Для получения списка друзей необходимо вызвать метод friends.
Что такое токен в ВК?
Токены — это ключи доступа к API. Они используются для авторизации при запросах к API. Токены позволяют ограничивать доступ к данным пользователя с помощью параметра scope . Он определяет рамки видимости для вашего приложения.
Что такое вход по Токену?
Токены предназначены для электронного удостоверения личности (например, клиента, получающего доступ к банковскому счёту), при этом они могут использоваться как вместо пароля, так и вместе с ним. В некотором смысле токен — это электронный ключ для доступа к чему-либо.
Где находятся сервисы ВК?
Полный список Вы найдёте в разделе «Сервисы» — на пятой вкладке в меню мобильного приложения ВКонтакте или по ссылке vk.com/services. Это только начало, уже сейчас в разработке находятся ещё несколько сервисов от разных компаний.
Как узнать что привязано к ВК?
В разделе «Настройки приложений» (vk.com/settings? act=apps) отображаются все подключённые сайты и приложения. Здесь вы можете удалить лишние авторизации или отрегулировать настройки к ним. Авторизация — это процесс предоставления приложению данных для входа через ваш аккаунт на нашем сайте.
Как работать с API в ВК?
API позволяет отправлять сообщения, получать и публиковать записи на стену, производить абсолютно любые действия, которые существуют в VK, от имени пользователя, кому был сгенерирован токен. Разобравшись с API на примере ВК, в будущем, вы безпроблемно сможете быстро вникать в API любых других сайтов.
Что такое API в контакте?
API ВКонтакте — это интерфейс, который позволяет получать информацию из базы данных vk.com с помощью http-запросов к специальному серверу. Вам не нужно знать в подробностях, как устроена база, из каких таблиц и полей каких типов она состоит — достаточно того, что API-запрос об этом знает.
Как получить доступ к API?
Войдите в личный кабинет myTarget под той учётной записью, для которой вы хотите получить ключ. Перейдите на вкладку «Профиль» → «Доступ к API». Заполните контакты ответственного лица и нажмите кнопку «Запросить доступ». Заполните контактные данные корректно — они не подлежат дальнейшему изменению.
Как получить информацию о пользователе VK API?
Краткая информация о пользователе Для получения данной информации используется метод users. get . users. get( < uids: 123456, putty fields: uid, first_name, last_name, name_case: nom >);
Что значит вход по Токену ВК?
Грубо говоря, ключ доступа – это документ, в котором написаны ваши ФИО и список того, что вы можете с этим документом делать. Когда вы его показываете ВК и просите, например, сделать запись на стене, то ВК смотрит, есть ли у вашего токена доступ к стене и, если все в порядке, делает запись от вашего имени.
Как работать с токеном?
Процесс токен авторизации Запрос обычно включает в себя ввод логина и пароля. Затем сервер определяет, может ли пользователь получить доступ. После этого сервер взаимодействует с устройством: ключ, телефон, USB или что-то ещё. После проверки сервер выдает токен и отправляет пользователю.
Что такое токен простыми словами?
Токен — цифровой сертификат, который гарантирует обязательства компании перед его владельцем, аналог акций на фондовой бирже в мире криптовалют. Проще говоря, токены похожи на жетоны парка аттракционов.
Где настройки в ВК на Андроиде?
Нажмите на миниатюру вашего аватара в правом верхнем углу сайта, в выпадающем меню будет доступен пункт «Настройки». Также в раздел можно перейти по прямой ссылке: vk.com/settings.
Как скрыть сервисы в ВК?
У тех, кто попал в тестовую группу, возле каждого виджета появится кнопка в виде трёх точек. Если нажать на неё и выбрать «Настройки виджетов», откроется список сервисов. Переключателями в этом списке можно скрыть те виджеты, которые для вас не актуальны. Рассылка о нововведениях ВКонтакте.
Источник: toptitle.ru
Электронные водительские права теперь можно предъявить ГИБДД прямо из «ВКонтакте»
Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации (Минцифры России) сообщило хорошую новость для автовладельцев.
На прошлой неделе в России заработала возможность показывать сотрудникам ГИБДД электронное водительское удостоверение в приложении «Госуслуги Авто». Теперь электронные права стали доступны и в мини-приложении «Госуслуги Авто» в социальной сети «ВКонтакте».
Отмечается, что команда «Госуслуг» запустила тестовую версию мини-приложения «Авто» в соцсети. Чтобы предъявить права сотруднику ГИБДД потребуется:
- Зайти в приложение «ВКонтакте».
- Во вкладке «Сервисы» открыть мини-приложение «Госуслуги».
- Выбрать раздел «Авто».
- Авторизоваться через «Госуслуги». Переход на портал и обратно произойдёт автоматически.
- В приложении появятся сведения об автомобиле, загрузятся данные СТС и водительского удостоверения. Ими можно будет воспользоваться в любой момент прямо из соцсети.
В новом мини-приложении работает большинство функций «Госуслуг Авто», включая электронный СТС, возможность передать права управления транспортным средством другому водителю или отозвать их и так далее.
Электронные права и СТС сформируются в виде QR-кода, который сотрудник ГИБДД считает специальным устройством. Права отображаются как 3 сменяющих друг друга QR-кода, для корректного распознавания инспектор должен отсканировать их все. В настоящее время сервис работает в режиме опытной эксплуатации. Инспектор вправе попросить оригиналы водительского удостоверения и СТС.
Источник: www.ixbt.com