@triplepointer

Как реализовать sign out через gapi?

Я пишу Vue js app.

В index html файле я включил в head тег следующее:

<meta name="google-signin-client_id" content="<my_client_id>.apps.googleusercontent.com">
<script src="https://apis.google.com/js/platform.js" async defer></script>

Когда я писал Login компонент, Я использовал следующий код (эта ссылка помогла мне https://stackoverflow.com/questions/50769341/how-t...) для реализации sign in кнопки:

template: `
...

    <div id="google-signin-button"></div>
...
`

methods: {
...
        onSignIn (user) {
          const profile = user.getBasicProfile();
          this.login(profile);
        }
...
}

mounted() {
...
      gapi.signin2.render('google-signin-button', {
        onsuccess: this.onSignIn
      })
...
    },

Это работает. Я пытался использовать следующий код в Navbar компоненте, который является частью других компонентов после переадресации, для реализации signout, но я получаю"TypeError: Cannot read properties of undefined (reading 'getAuthInstance')":

logout: function () {
  var self = this;
    if(confirm("Вы действительно хотите выйти?")) {
      const auth2 = gapi.auth2.getAuthInstance();

      auth2.signOut().then(function () {
          console.log('user signed out');
          self.$store.dispatch('authentication/logout')
          .then(() => {
            self.$router.push('/login')
          })
      });
    }
  },

Я пробовал использовать ответ из этой ссылки https://stackoverflow.com/questions/29815870/typee... , но я получаю get cookie policy error и не знаю, что с этим делать. Помогите!
  • Вопрос задан
  • 166 просмотров
Решения вопроса 1
@triplepointer Автор вопроса
Ok, я забыл запустить веб-сервер. После я использовал последнюю упомянутую ссылку link, получил auth2 глобальную переменную и и использовал ее для signOut. Done.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы