我尝试将 OAUTH2 功能添加到我现有的 App Engine 应用程序中,但遇到了一些问题,我感谢任何建议。
以下是我的步骤: 1. 在 Google Api Console 中创建客户端 ID,并创建 OAUTH 流;2.用户访问该login
页面后,将被重定向到谷歌登录页面;3.一旦他们同意条款,用户将被重定向到我的应用程序的登录页面
from oauth2client.client import OAuth2WebServerFlow
from django.http import HttpResponseRedirect
flow = OAuth2WebServerFlow(client_id='my_client_id',
client_secret='my_client_secret',
scope='https://www.googleapis.com/auth/userinfo.email',
redirect_uri='http://www.example.com/')
def login(request):
return HttpResponseRedirect(auth_uri)
def ecoLandingPage(request):
code=request.GET.get('code', '')
if code:
cred = "" + code
credentials = flow.step2_exchange(cred)
我的问题是:
用户登录并重定向到登录页面后,如果他刷新页面,则会出现以下错误,我猜与
flow.step2_exchange(cred)
. 有没有办法来解决这个问题?INFO 2014-08-21 16:39:56,437 client.py:1304] 无法检索访问令牌:{
“错误”:“invalid_grant”,
"error_description" : "无效代码。"
}
另外,由于我在 App Engine 上运行 Django 项目,检查当前用户信息的最佳方法是什么,因为我想在页面的右上角发布他们的名字。有什么好的例子吗?
谢谢!