Google Login Auhtentication Sample Python Code (Handling Proxy Server)
Google Login Auhtentication
clientid = settings.SOCIAL_AUTH_CREDENTIALS['google']['client_id']
client_secret = settings.SOCIAL_AUTH_CREDENTIALS['google']['client_secret']
redirect_uri = settings.SOCIAL_AUTH_CREDENTIALS['google']['redirect_uri']
scope = ['https://www.googleapis.com/auth/userinfo.profile', #profile
'https://www.googleapis.com/auth/userinfo.email', #email address
#'https://www.google.com/m8/feeds/', #contacts
]
def login(request):
url = 'https://accounts.google.com/o/oauth2/auth?client_id=%s&redirect_uri=%s&response_type=code&scope=%s&access_type=offline' % (clientid,redirect_uri,' '.join(scope))
return HttpResponseRedirect(url)
def callback(request):
code = request.GET.get('code','')
if len(code) > 0:
url = 'https://accounts.google.com/o/oauth2/token'
values = {'code' : code,
'client_id' : clientid,
'client_secret' : client_secret,
'redirect_uri': redirect_uri,
'grant_type': 'authorization_code'}
# proxy handling. Not required on main server
useproxy = getattr(settings, "PROXY_ENABLED", False)
if useproxy:
passmgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
passmgr.add_password(None, settings.PROXY_SERVER, settings.PROXY_USER, settings.PROXY_PASSWORD)
authinfo = urllib2.ProxyBasicAuthHandler(passmgr)
proxy_support = urllib2.ProxyHandler({"http" : settings.PROXY_SERVER})
opener = urllib2.build_opener(proxy_support, authinfo)
urllib2.install_opener(opener)
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
the_page = response.read()
access_info = json.loads(the_page)
google_access_token = access_info['access_token']
google_id_token = access_info['id_token']
google_token_type = access_info['token_type']
url = 'https://www.googleapis.com/oauth2/v1/userinfo?access_token=%s' % google_access_token
req = urllib2.Request(url)
response = urllib2.urlopen(req)
the_page = response.read()
user_info = json.loads(the_page)
print user_info
.
.
.
.
.
.
.
.
written by, Thanga Vignesh Raja T

Comments
Post a Comment