栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python Oauth2-使用Google登录

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python Oauth2-使用Google登录

经过很长的时间,浪费了很多时间,我放弃了OAuth2,因为它很难配置,我只需要登录用户即可。下面的代码应该可以帮助需要做类似事情的人,以及可以定做。我所做的就是遵循有关形成网址的说明,在这里->
https://developers.google.com/accounts/docs/OAuth2Login

我做了两个视图(对于不使用Django的用户-页面),并链接到第一个视图:此页面我称为login / google,并从登录页面建立了链接。

def google_login(request):    token_request_uri = "https://accounts.google.com/o/oauth2/auth"    response_type = "pre"    client_id = XXXXXX-your_client_id    redirect_uri = "http://mysite/login/google/auth"    scope = "https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email"    url = "{token_request_uri}?response_type={response_type}&client_id={client_id}&redirect_uri={redirect_uri}&scope={scope}".format(        token_request_uri = token_request_uri,        response_type = response_type,        client_id = client_id,        redirect_uri = redirect_uri,        scope = scope)    return HttpResponseRedirect(url)

上面的代码重定向到第二页(此页必须在Google应用定义中定义为重定向uri)。我称此页面为login / google / auth:

def google_authenticate(request):    parser = Http()    login_failed_url = '/'    if 'error' in request.GET or 'pre' not in request.GET:        return HttpResponseRedirect('{loginfailed}'.format(loginfailed = login_failed_url))    access_token_uri = 'https://accounts.google.com/o/oauth2/token'    redirect_uri = "http://mysite/login/google/auth"    params = urllib.urlenpre({        'pre':request.GET['pre'],        'redirect_uri':redirect_uri,        'client_id':XXXXX_your_google_key,        'client_secret':XXXXX_your_google_secret,        'grant_type':'authorization_pre'    })    headers={'content-type':'application/x-www-form-urlenpred'}    resp, content = parser.request(access_token_uri, method = 'POST', body = params, headers = headers)    token_data = jsonDepre(content)    resp, content = parser.request("https://www.googleapis.com/oauth2/v1/userinfo?access_token={accessToken}".format(accessToken=token_data['access_token']))    #this gets the google profile!!    google_profile = jsonDepre(content)    #log the user in-->    #HERE YOU LOG THE USER IN, OR ANYTHING ELSE YOU WANT    #THEN REDIRECT TO PROTECTED PAGE    return HttpResponseRedirect('/dashboard')

我真的希望这可以帮助人们,并节省他们浪费的时间。欢迎对代码发表评论!



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/611292.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号