views.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:hexopress 作者: joelewis 项目源码 文件源码
def oauth2callback(request):
    auth_code = request.GET['code']
    print auth_code
    credentials = client.credentials_from_clientsecrets_and_code(
        settings.CLIENT_SECRET_FILE,
        ['https://www.googleapis.com/auth/drive', 'profile', 'email'],
        auth_code,
        redirect_uri=settings.HOST_ADDR+'/oauth2callback')
    # credentials = flow.step2_exchange(auth_code)
    print credentials.id_token
    email = credentials.id_token['email']
    guser_id = credentials.id_token['sub']
    print credentials.id_token
    username = email.split('@')[0]
    try: 
        user = User.objects.get(email=email)
    except: 
        user = User(username=username, email=email)
        user.save()

    googleuser, created = GoogleUser.objects.get_or_create(user=user)
    googleuser.access_token = credentials.access_token
    googleuser.refresh_token = credentials.refresh_token
    googleuser.guser_id = guser_id
    googleuser.save()
    login(request, user)
    state = request.GET.get('state')
    if state:
        param = state
    else:
        param = ''
    redirect_uri = '/?' + param
    return HttpResponseRedirect(redirect_uri)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号