Я пишу 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 и не знаю, что с этим делать. Помогите!