我使用web2py在python中创建了一个webapp,它使用了Janrain作为推荐的第三方认证 在我的本地服务器上它工作得非常好,但现在当我在pythonanywhere上部署时,身份验证给了我以下错误
“class'urllib2.URLError'urlopen错误隧道连接失败:403 Forbidden”
堆栈
===========
File "/usr/lib/python2.7/urllib2.py", line 127, in urlopen
return _opener.open(url, data, timeout)
File "/usr/lib/python2.7/urllib2.py", line 404, in open
response = self._open(req, data)
File "/usr/lib/python2.7/urllib2.py", line 422, in _open
'_open', req)
File "/usr/lib/python2.7/urllib2.py", line 382, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 1222, in https_open
return self.do_open(httplib.HTTPSConnection, req)
File "/usr/lib/python2.7/urllib2.py", line 1184, in do_open
raise URLError(err)
URLError: <urlopen error Tunnel connection failed: 403 Forbidden>
==========================
对于第三方身份验证,我使用过yahoomail id。
答案 0 :(得分:5)
现在已修复此问题,但万一有其他人遇到此问题或类似问题:
问题在于PythonAnywhere上的免费用户限制了互联网,这是通过代理进行的,只允许whitelist of sites。
网站.janrain.com
和.rpxnow.com
当时并未列入白名单,但我们现在已经添加了这些网站,现在janrain / yahoo邮件登录工作正常。
因此,对于其他碰巧通过代理并尝试使用此服务的人来说,这些是您需要添加的网站。 (对于喜欢运行noscript的人来说,也可能有兴趣,如果你发现某些联合身份验证系统失败,你可能需要解锁rpxnow)。
快乐编码每个人!