【发布时间】:2024-09-09 11:25:01
【问题描述】:
我正在开发一个用于关联的网络应用程序,出于多种原因,我们想使用 Google 的 Auth2 api。
所以,我们的登录过程是这样工作的:
- 用户点击谷歌登录按钮
- 令牌被发送到页面以检查它是否有效,以及用户是否已经存在于数据库中
- 如果令牌有效,则自动增加用户
- 如果用户不存在,则从 Google 应用中注销用户
这是我的令牌验证页面的简化版本,假设用户不存在(我跳过 php 进行检查,只是插入了 php 会回显的内容):
<script>
function signOut() {
var auth2 = gapi.auth2.getAuthInstance();
auth2.signOut().then(function () {
console.log('User signed out.');
});
}
function loadGapi() {
gapi.load('auth2', function() {
gapi.auth2.init();
});
}
</script>
<a href="#" id="logoutButton" onclick="signOut();">Sign out</a>
<script src="https://apis.google.com/js/platform.js"></script>
<script>
loadGapi();
signOut();
</script>
当页面加载时,我收到以下错误消息:
Uncaught TypeError: Cannot read property 'getAuthInstance' of undefined
at signOut // On line 3
请注意,logoutButton 仅用于测试目的,单击时效果很好,但我真的不知道如何在不需要他与任何东西交互的情况下断开用户的连接。
(感谢您抽出宝贵时间阅读本文,我已经坚持了大约 3 个小时 ^^)
【问题讨论】:
-
gapi.auth2.getAuthInstance() 这个gapi可能没有被初始化。请检查可能设置超时
标签: javascript oauth-2.0 google-api-js-client