javascript - open - Mesa privada de FusionTables con OAUTH2
oauth2 php (1)
Buena foto de Tim Rosenberg que muestra exactamente cómo funciona OAUTH2:
Soy un poco perezoso para comenzar a buscar en estos 2 files y test así que busqué la forma más fácil
1. obtener el token
2.acceso con ese token
con la ayuda de gwt-oauth2
póngalo en index.php head: <script type="text/javascript" src="gwt-oauth2.js"></script>
y esto en cuerpo
<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>
DE ACUERDO,
Ahora puede ver la conexión y la redirección a oauthWindow.html en una nueva ventana sin errores. Los parámetros GET ahora le muestran access_token
token_type
expires_in
. Compruebe el access_token HERE
Como ves access_token funcionando muy bien PERO
Lo que aún no entiendes es primero alerta de eso:
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);
});
La segunda alerta funciona bien y cuando intentas autenticar. de nuevo, si aun está abierto o no está abierto, se mostrará una alerta de error (¡así que está funcionando!) Ahora agreguemos ese pequeño código a 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>
¡Perfecto!
Ahora, si desea trabajar con tablas privadas, todo lo que necesita es agregar un access_token a url.
¡Gracias por darme la razón para contestarme!
Ponga esto en oauthWindow.html
archivo 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>