salve a tutti, in locale ho creato una pagina che richiede l'autenticaizone con l'account google tramite OAuth2.
Vi posto il codice:
codice HTML:
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
var OAUTHURL = 'https://accounts.google.com/o/oauth2/auth?';
var VALIDURL = 'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=';
// var SCOPE = 'https://www.googleapis.com/auth/userinfo.profile';
//var SCOPE = 'https://www.googleapis.com/auth/gmail.readonly';
var SCOPE = 'https://www.googleapis.com/auth/userinfo.email';
var CLIENTID = 'XXX';
var REDIRECT = 'http://localhost/oauth2callback.html'
var TYPE = 'token';
var _url = OAUTHURL + 'scope=' + SCOPE + '&client_id=' + CLIENTID + '&redirect_uri=' + REDIRECT + '&response_type=' + TYPE;
var acToken;
var tokenType;
var expiresIn;
var user;
var loggedIn = false;
function login() {
var win = window.open(_url, "Authentication", 'width=800, height=600');
var pollTimer = window.setInterval(function() {
try {
console.log(win.document.URL);
if (win.document.URL.indexOf(REDIRECT) != -1) {
window.clearInterval(pollTimer);
var url = win.document.URL;
acToken = gup(url, 'access_token');
tokenType = gup(url, 'token_type');
expiresIn = gup(url, 'expires_in');
win.close();
validateToken(acToken);
}
} catch(e) {
}
}, 100);
}
function validateToken(token) {
$.ajax({
url: VALIDURL + token,
data: null,
success: function(responseText){
getUserInfo();
},
dataType: "jsonp"
});
function getUserInfo() {
$.ajax({
url: 'https://www.googleapis.com/oauth2/v1/userinfo?access_token=' + acToken,
data: null,
success: function(resp) {
user = resp;
console.log(user);
$('#uName').append(user.name);
//$('#imgHolder').attr('src', user.picture);
},
dataType: "jsonp"
});
}
}
</script>
</head>
<body>
<a href='#' onClick='login();' id="loginText"'> Click here to login </a>
</body>
</html>
Questo codice, mi permette di inserire i dati per loggare tramite la mail di google e una volta confermata mi reindirizza alla pagina indicata dalla variabile "REDIRECT". Fin qui tutto bene, la nuova pagina redirect mi restituisce nell'url l'access token senza dare errori.
I miei dubbi principali sono due:
1:Salvare tutti i dati relativi all'autenticazione. da quel che ho capito tutto ciò che mi serve dovrebbe stare nell'url della pagina callback ma non capisco come estrapolarli e salvarli.
2: quale 'scope' conviene usare per avere il maggior numero di dati possibili dell'utente che si autentica tramite gmail. Momentaneamente sto utilizzando "userinfo.mail", ne conoscete altri che restituiscono più dati?