salve a tutti, in locale ho creato una pagina che richiede l'autenticaizone con l'account google tramite OAuth2.
Vi posto il codice:
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.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>
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?

Rispondi quotando