CMS DataLife Engine - Система управления сайтами

Sign in to follow this  
slomchinskiy

Google авторизация в новом окне

Recommended Posts

Здравствуйте. Подскажите пожалуйста, как реализовать Google авторизацию через новое popup окно, а не на той же странице сайта или в новой вкладке браузера.

Через window.open не работает, пишет что такой линк на редирект не указан в настройках моего Google приложения (на текущей странице авторизация работает). Использовал этот код:

<body>
    <a href="javascript:poptastic('https://accounts.google.com/o/oauth2/auth?scope=https://www.google.com/m8/feeds&client_id=21302922996.apps.googleusercontent.com&redirect_uri=https://www.example.com/back&response_type=token');">Try
    out that example URL now</a>
<script>
    function poptastic(url) {
      var newWindow = window.open(url, 'name', 'height=600,width=450');
      if (window.focus) {
        newWindow.focus();
      }
    }

</script>
</body>

 

Share this post


Link to post
Share on other sites
1 час назад, slomchinskiy сказал:

пишет что такой линк на редирект не указан в настройках моего Google приложения (на текущей странице авторизация работает).

Потому как для ссылок нужно использовать теги DLE, а не прописывать свои некорректные https://dle-news.ru/extras/online/logintpl.html в частности тег {google_url}.

 

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

  • Thanks 1

Share this post


Link to post
Share on other sites

Пример кода с интернета, естественно я использовал тег {google_url}.

Спасибо за наводку, изучу.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

В стандартных шаблонах форма авторизации Google открывается в новой вкладке браузера:

[google]<a href="{google_url}" target="_blank" class="soc_gp"><svg class="icon icon-gp"><use xlink:href="#icon-gp"/></svg></a>[/google]

Задача состоит в том, чтобы открывать в новом окне браузера, с помощью window.open. Если делать через новое окно, то авторизация не работает. Вот текст ошибки. В новой вкладке авторизация работает.

 

1.1559910504.png

2.1559910538.png

 

Share this post


Link to post
Share on other sites
1 час назад, slomchinskiy сказал:

В стандартных шаблонах форма авторизации Google открывается в новой вкладке браузера

Если бы вы поставили бы шаблон, а не просто копировали из него куски кода, то увидели бы что это не так. В стандартном шаблоне есть JS который перехватывает ссылки и открывает в всплывающем окне.

 

Также на вашем скриншоте видно, что вы передаете не полную ссылку в приложение google. Затереть домен вы затерли, а при этом не увидели что там ссылка короче чем та что указана в приложении. Вот и смотрите почему ваш JS код не передает ссылку полностью.

Share this post


Link to post
Share on other sites

Я видел, что ссылка в ошибке отличается от той, которую я указал в разрешенных редиректах. Но почему она отличается, не понимаю, ибо ссылку прописываю не я, а тег {google_url}. Скрипт, который я использую, кидал в первом сообщении. Я в js не силен, но вроде, в нем нигде не обрезается эта ссылка. Подскажите пожалуйста, что я делаю не так.

 

Понял, буду копаться в стандартном шаблоне. Спасибо.

Share this post


Link to post
Share on other sites

Разобрался, celsoft спасибо.

Может поможет кому-то:

	$('.soc_links a').on('click',function(){
	   var href = $(this).attr('href');
       var width  = 820;
       var height = 420;
       var left   = (screen.width  - width)/2;
       var top   = (screen.height - height)/2-100;   

       auth_window = window.open(href, 'auth_window', "width="+width+",height="+height+",top="+top+",left="+left+"menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no");
       return false;
	});
[group=5]<span class="soc_links"><a href="{google_url}"><div class="button-outline">АВТОРИЗАЦИЯ</div></a></span>[/group]

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this