librown
@librown
На-все-руки-мастер и немного кодер

Как правильно построить логику oauth-регистрации?

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

Для примера возьмем ВК.
Нужные данные от пользователя: имя, фамилия, email, телефон. Классно было бы авторизовываться без перезагрузки страницы (через Open API), но тогда нельзя получить email (я верно понимаю?).

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

1 шаг: показываем окно
3c742bebf6.png
2 шаг: При нажатии иконки ВК редиректим браузер на:
http://oauth.vk.com/authorize?client_id=XXX&redirect_uri=http://mysite.ru/oauth.php&response_type=code&display=popup&scope=email


3 шаг: В скрипте mysite.ru/oauth.php получаем $_GET['code'] и производим запросы к VK API для получения данных о пользователе

4 шаг: Вернуть пользователя на форму регистрации, для её завершения.

4. 1. Как нам вернуть браузер пользователя обратно на страницу с нашей формой регистрации и передать ей инфу об авторизовавшемся пользователе?

4. 2. А есть форма регистрации вызывается модальным окном с любой страницы сайта? - Тогда URL формы регистрации динамический получается.

42ac6fd0a3.png

И вообще, правильно ли я понимаю сам принцип?

Спасибо.
  • Вопрос задан
  • 2782 просмотра
Решения вопроса 1
petermzg
@petermzg
Самый лучший программист
По click на кнопке открываете ссылку в новом окне
window.open(url, 'caption', 'resizable=1,width=600,height=600', true);

В этом окне делаются все редиректы и затем возращается ваша страница в которой будет ваш javascript
var vk = window.opener.document.getElementById('vklogin');
vk.fnOnVkAuth(email);

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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы