Авторизация через соцсети без перезагрузки страницы

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

Хорошим тоном будет авторизовать пользователя без ухода с целевой страницы (например страницы с комментариями). Для авторизации через социальные сети можно воспользоватся popup окном в котором произвести вызов oauth или openid авторизации.

Тк в popup окне открыт адрес стороннего сайта (социальной сети) есть определенные сложности в обращение из родительского окна к дочернему

var win = window.open('https://oauth.vk.com/authorize?*******************', 'auth')
Надежным способом работающим в большинстве браузеров является свойсво window.closed которое устанавливается в true после закрытия всплывающего окна
 var timer = setInterval(function () {
       if (win.closed){
         refresh_auth_area();
         setTimeout(function(){ 
         clearInterval(timer);
       } , 100);
     }
   }, 200);
Мы можем повесить таймер который будет ожидать закрытия дочернего окна для обновления части страницы которая требует авторизацию пользователя.

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

Вам может понравиться