Visualizzazione dei risultati da 1 a 1 su 1
  1. #1

    Salvare i dati restituiti da Access token OAuth2

    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?
    Ultima modifica di gabrieletaibi; 09-03-2016 a 13:14

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.