Личный стол FusionTables с OAUTH2
Хорошая картинка отТим Розенберг это показывает, как именно работают OAUTH2:
Мне лень даже начинать смотреть на это2 файлы а такжетестовое задание поэтому я искал самый простой способ
1. получить токен
2. доступ с этим токеном
с помощью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 в новом окне без ошибок. Получить параметры теперь показывает вамaccess_token
token_type
expires_in
, Проверьте access_tokenВОТ
Как вы видите, 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>
Отлично!
Теперь, если вы хотите работать с приватными таблицами, все, что вам нужно, это добавить access_token в URL.
Спасибо, что дали мне причину ответить самому себе!