如何通过gapi实现注销
How to implement sign out via gapi
我正在编写 Vue js 应用程序。
在索引 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>
当我编写登录组件时,我使用了以下代码(这个 帮助了我)来实现登录按钮:
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 组件(重定向后它是其他组件的一部分)中使用以下代码来实现注销,但我得到“类型错误:无法读取未定义的属性(读取 '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')
})
});
}
},
我尝试了这个 的答案,但我收到 cookie 策略错误并且不知道该怎么做。可能有另一种方法吗?请帮忙!如果您愿意,请更正我的语法错误。谢谢!
好的,我忘了 运行 网络服务器。然后我使用了最后一个 link,获取 auth2 全局变量并使用它来注销。完成。
我正在编写 Vue js 应用程序。
在索引 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>
当我编写登录组件时,我使用了以下代码(这个
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 组件(重定向后它是其他组件的一部分)中使用以下代码来实现注销,但我得到“类型错误:无法读取未定义的属性(读取 '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')
})
});
}
},
我尝试了这个
好的,我忘了 运行 网络服务器。然后我使用了最后一个 link,获取 auth2 全局变量并使用它来注销。完成。