Google войти с помощью angularjs

0

Мне нужно "войти в систему с помощью Google" в одном из моих партикулов, поэтому я применил документацию Google для интеграции веб-входа. Моя проблема заключается в том, что я не могу заставить кнопку работать из представления, только из индекса (поскольку там есть метатеги). Поскольку я использую состояния, я не хочу ставить код. В основном, следующие метатеги должны отображаться одновременно с кнопкой:

<meta name="google-signin-client_id" content="YOUR_CLIENT_ID.apps.googleusercontent.com">
<meta name="google-signin-scope" content="profile email">

В моем шаблоне:

        <!--will not work since we're not in index file -->
        <div class="g-signin2" data-onsuccess="onSignIn" data-theme="dark"></div>
        <script>
            function onSignIn(googleUser) {
                // Useful data for your client-side scripts:
                var profile = googleUser.getBasicProfile();
                console.log("ID: " + profile.getId()); // Don't send this directly to your server!
                // The ID token you need to pass to your backend:
                var id_token = googleUser.getAuthResponse().id_token;
                console.log("ID Token: " + id_token);
            };
        </script>

У каждого есть эта проблема и он знает, что нужно. Спасибо

Теги:
google-api

1 ответ

1

Вы можете вручную запустить auth2 (g-signin2 будет использовать его автоматически). Затем отрисуйте кнопку, ссылающуюся на идентификатор элемента.

Полностью рабочий пример (просто замените YOUR_CLIENT_ID):

<html>
<body>
  <script>
    function onSignIn(googleUser) {
       alert('onSignIn!');
    }

    function onLoad() {
      gapi.load('auth2,signin2', function() {
        gapi.auth2.init({
          'client_id': 'YOUR_CLIENT_ID'
        });
        gapi.signin2.render('google_signin_button', {
            'onsuccess': 'onSignIn',
            'theme': 'dark'
        });
      });
    }
  </script>

  <div id="google_signin_button"></div>

  <script src="https://apis.google.com/js/platform.js?onload=onLoad" async defer></script>
</body>
</html>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню