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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this