| <! DOCTYPE html> | |
| <html> | |
| <head> | |
| <script src="jquery.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 https://www.googleapis.com/auth/userinfo.email'; | |
| var CLIENTID = '716569014051.apps.googleusercontent.com'; | |
| var REDIRECT = 'http://www.gethugames.in/proto/googleapi/oauth/' | |
| var LOGOUT = 'http://accounts.google.com/Logout'; | |
| 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, "windowname1", '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) { | |
| } | |
| }, 500); | |
| } | |
| function validateToken(token) { | |
| $.ajax({ | |
| url: VALIDURL + token, | |
| data: null, | |
| success: function(responseText){ | |
| getUserInfo(); | |
| loggedIn = true; | |
| $('#loginText').hide(); | |
| $('#logoutText').show(); | |
| }, | |
| 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').text('Welcome ' + user.name); | |
| $('#imgHolder').attr('src', user.picture); | |
| }, | |
| dataType: "jsonp" | |
| }); | |
| } | |
| //credits: http://www.netlobo.com/url_query_string_javascript.html | |
| function gup(url, name) { | |
| name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); | |
| var regexS = "[\\#&]"+name+"=([^&#]*)"; | |
| var regex = new RegExp( regexS ); | |
| var results = regex.exec( url ); | |
| if( results == null ) | |
| return ""; | |
| else | |
| return results[1]; | |
| } | |
| function startLogoutPolling() { | |
| $('#loginText').show(); | |
| $('#logoutText').hide(); | |
| loggedIn = false; | |
| $('#uName').text('Welcome '); | |
| $('#imgHolder').attr('src', 'none.jpg'); | |
| } | |
| </script> | |
| </head> | |
| <body> | |
| <a href='#' onClick='login();' id="loginText"'> Click here to login </a> | |
| <a href="#" style="display:none" id="logoutText" target='myIFrame' onclick="myIFrame.location='https://www.google.com/accounts/Logout'; startLogoutPolling();return false;"> Click here to logout </a> | |
| <iframe name='myIFrame' id="myIFrame" style='display:none'></iframe> | |
| <div id='uName'></div> | |
| <img src='' id='imgHolder'/> | |
| </body> | |
| </html> http://www.gethugames.in/blog/2012/04/authentication-and-authorization-for-google-apis-in-javascript-popup-window-tutorial.html |
Thứ Sáu, 18 tháng 10, 2013
login with google in a popup example / đăng nhập website bằng tài khoản google
Đăng ký:
Đăng Nhận xét (Atom)
Không có nhận xét nào:
Đăng nhận xét