get userinfo da autenticazione oauth2

Gabriele Taibi

Nuovo Utente
14 Mar 2015
1
0
0
Salve, ho un progetto da realizzare nel quale nella pagina di index devo effettuare l'autenticazione oauth2 di google ed infine salvare tutte le variabili restituite dalla funzione "getUserInfo()" in un database.
la mia pagina index è la seguente:

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.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>

Il codice riportato sopra non è mio, è uno script trovato sul web e riadattato alle mie esigenze. Il login sembra funzionare, nella pagina di redirect mi restituisce l'access token e provandolo come url mi restituisce i dati dell'utente. La mia domanda è, dato come è scritta la funziona "getUserInfo()", se sia possibile estrapolare i dati dell'utente direttamente da quella funzione. Nel caso sia possibile, come posso implementarlo?
Il risultato finale deve essere salvare quelle variabili su un database, quindi vi chiedo anche se questa implementazione che ho in mente possa andar bene oppure devo trovare strade alternative.
Grazie in anticipo.
 

Discussioni simili