gpt4 book ai didi

javascript - 带有 OAUTH2 的 FusionTables 私有(private)表

转载 作者:行者123 更新时间:2023-12-03 08:18:19 25 4
gpt4 key购买 nike

Tim Rosenberg的好照片|这准确显示了 OAUTH2 的工作原理:

enter image description here

我什至懒得开始看这个2 filestest
所以我寻找最简单的方法

1.获取 token

2.使用该 token 访问

gwt-oauth2 的帮助下

将其放入 index.php 头中:<script type="text/javascript" src="gwt-oauth2.js"></script>
这在体内

<script type="text/javascript">
(function() {
var GOOGLE_AUTH_URL = "https://accounts.google.com/o/oauth2/auth";
var GOOGLE_CLIENT_ID = "CLIENT_ID";
//var PLUS_ME_SCOPE = "https://www.googleapis.com/auth/plus.me";
//var FusionTable_SCOPE = "https://www.googleapis.com/auth/fusiontables";
var button = document.createElement("button");
button.innerText = "Authenticate with Google";
button.onclick = function() {

var req = {
'authUrl' : GOOGLE_AUTH_URL,
'clientId' : GOOGLE_CLIENT_ID,
'scopes': ['https://www.googleapis.com/auth/plus.me',
'https://www.googleapis.com/auth/fusiontables'
],
};

oauth2.login(req, function(token) {
alert('Got an OAuth token:\n'+ token +'\n'+ 'Token expires in '+ oauth2.expiresIn(req) +' ms\n');
}, function(error) {
alert("Error:\n" + error);
});
};

var dv = document.getElementById('admin-content');
dv.appendChild(button);
var clearTokens = document.createElement('button');
clearTokens.innerText = 'Clear all tokens'
clearTokens.onclick = oauth2.clearAllTokens;
dv.appendChild(clearTokens);
})();
</script>

好的,

现在您可以在新窗口中看到连接和重定向到 oauthWindow.html 没有错误。 GET 参数现在向您显示 access_token token_type expires_in .检查 access_token HERE

如您所见, access_token 工作得很好但是

您仍然没有得到的是第一个警报:
oauth2.login(req, function(token) {
alert('Got an OAuth token:\n' + token + '\n'
+ 'Token expires in ' + oauth2.expiresIn(req) + ' ms\n');
}, function(error) {
alert("Error:\n" + error);
});

第二个警报工作正常,当您尝试进行身份验证时。如果 oauthWindow.html 仍然打开,它会再次显示错误警报(所以它正在工作!)
现在让我们将那个小代码添加到 oauthWindow.html
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
if (window.opener && window.opener.oauth2 && window.opener.oauth2.__doLogin) {
window.opener.oauth2.__doLogin(location.hash);
} else {
document.body.innerText = "Your browser seems to be stopping this window from communicating with the main window.";
}
</script>
</head>
<body></body>
</html>

完美的!

现在,如果您想使用私有(private)表,您只需将 access_token 添加到 url。

谢谢你给了我回答自己的理由!

最佳答案

将此放入 oauthWindow.html文件

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
if (window.opener && window.opener.oauth2 && window.opener.oauth2.__doLogin) {
window.opener.oauth2.__doLogin(location.hash);
} else {
document.body.innerText = "Your browser seems to be stopping this window from communicating with the main window.";
}
</script>
</head>
<body></body>
</html>

关于javascript - 带有 OAUTH2 的 FusionTables 私有(private)表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10996487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com