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