Salvare i dati restituiti dopo autenticazione OAuth2

parsifal

Nuovo Utente
18 Gen 2014
26
0
0
salve a tutti, in locale ho creato una pagina che richiede l'autenticaizone con l'account google tramite OAuth2.
Vi posto il 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?
Grazie in anticipo

PS: al momento valuto qualsiasi consiglio, anche consigli sull'implementazione dello stesso programma in php.
 

Discussioni simili