【发布时间】:2015-10-28 19:53:00
【问题描述】:
好的。设置信息 - Django 1.8.3,Python 2.7.3,使用 Goodreads 0.2.4 api handler for Python(稍作修改)。我正处于 Goodreads 对应用程序进行回调的地步,但 clickjacker 中间件将其作为错误捕获并抛出 404。如果我禁用 clickjacker 预防(我不想这样做),我得到“类型 'type' 的参数不可迭代”错误。
相关代码:
from goodreads import client
grClient = client.GoodreadsClient(<key>,<other_key>)
def goodReadsOAUTH_stage1(request,user):
try:
return HttpResponseRedirect(grClient.authenticate())
# function modified to return the URL rather than open a browser
except keyError:
return Http404
def goodReadsOAUTH_stage2(request):
if request.method == "GET":
if request.GET['authorize'] == 1:
grRecord = goodreadsOAUTHKeys(request.user,request.GET['oauth_token']
grRecord.save()
grClient.session.oauth_finalize()
return HttpResponseRedirect(reverse(request,'workroom:profile',kwargs={'user':request.user.username}))
else:
return Http404
else:
return Http404
以及两者的 URLconf:
url(r'^social/(?P<user>[-\w\d]+)/goodreads/OAUTH/$', views.goodReadsOAUTH_stage1, name='goodreads-oauth-one'),
url(r'^social/goodreads/OAUTH/validation/$', views.goodReadsOAUTH_stage2, name='goodreads-oauth-two'),
以及随之而来的错误信息!
类型对象'Http404'没有属性'get'
异常位置:/home/.../public/env/local/lib/python2.7/site-packages/django/middleware/clickjacking.py in process_response,第 31 行
还有来自点击劫持保护的那一行代码:
if response.get('X-Frame-Options', None) is not None:
我基本上不知道如何让回调正常运行。
【问题讨论】: