我开始将 OAuth 与 Python 和 Django 一起使用。我需要它用于 Google API。我在本地主机上工作,所以我无法为 url-callback 注册域。我已经阅读了有关 Google OAuth 可以与匿名域一起使用的信息。找不到,我如何以及在哪里可以做到这一点?
编辑:
我有这样的看法:
def authentication(request):
CONSUMER_KEY = 'xxxxx'
CONSUMER_SECRET = 'xxxxx'
SCOPES = ['https://docs.google.com/feeds/', ]
client = gdata.docs.client.DocsClient(source='apiapp')
oauth_callback_url = 'http://%s/get_access_token' % request.META.get('HTTP_HOST')
request_token = client.GetOAuthToken(
SCOPES, oauth_callback_url, CONSUMER_KEY, consumer_secret=CONSUMER_SECRET)
domain = '127.0.0.1:8000'
return HttpResponseRedirect(
request_token.generate_authorization_url(google_apps_domain=domain))
而这个错误:
抱歉,您访问的登录页面未使用 Google Apps 的域。请检查网址并重试。
通过https://code.google.com/apis/console/注册
编辑:
CONSUMER_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxxx'
CONSUMER_SECRET = 'xxxxxxxxxxxxxxxxxxxxxxxxx'
SCOPES = ['https://docs.google.com/feeds/', ]
DOMAIN = 'localhost:8000'
def authentication(request):
client = gdata.docs.client.DocsClient(source='apiapp')
oauth_callback_url = 'http://%s/get_access_token' % DOMAIN
request_token = client.GetOAuthToken(SCOPES,
oauth_callback_url,
CONSUMER_KEY,
consumer_secret=CONSUMER_SECRET)
return HttpResponseRedirect(
request_token.generate_authorization_url())
def verify(request):
client = gdata.docs.client.DocsClient(source='apiapp')
f = open('/home/i159/.ssh/id_rsa')
RSA_KEY = f.read()
f.close()
oauth_callback_url = 'http://%s/get_access_token' % DOMAIN
request_token = client.GetOAuthToken(SCOPES,
oauth_callback_url,
CONSUMER_KEY,
rsa_private_key=RSA_KEY)
return HttpResponseRedirect(
request_token.generate_authorization_url(google_apps_domain=DOMAIN))
错误:
无法获取 OAuth 请求令牌:400,消费者没有证书:xxxxxxxxxxxxxxx.apps.googleusercontent.com