环境 - Python 2.7.3,webpy。
我正在尝试使用 Python web.py 对 github 进行简单的 oauth 3 方式身份验证。根据 github 上的基本 oauth 指南,我正在做这样的事情:
import web,requests
import oauth2,pymongo,json
from oauth2client.client import OAuth2WebServerFlow
urls=('/', 'githublogin',
'/session','session',
'/githubcallback','githubCallback');
class githublogin:
def GET(self):
new_url = 'https://github.com/login/oauth/authorize'
pay_load = {'client_id': '',
'client_secret':'',
'scope':'gist'
}
headers = {'content-type': 'application/json'}
r = requests.get(new_url, params=pay_load, headers=headers)
return r.content
这将我发送到 GH 登录页面。一旦我登录 - GH 不会将我重定向到回调。redirect_uri 参数在 github 应用程序中配置。我已经仔细检查以确保这是正确的。
class githubCallback:
def POST(self):
data = web.data()
print data
def GET(self):
print "callback called"
相反,我在浏览器中看到
http://<hostname>:8080/session
了 404 消息,因为我没有配置会话 URL。那是第 1 个问题。第 2 个问题 - 如果我配置会话 URL 并打印出帖子消息
class session:
def POST(self):
data = web.data()
print data
def GET(self):
print "callback called"
我可以看到一些带有“authenticity_token”的数据发布到 URL。
我尝试使用 python_oauth2 库,但无法通过 authentication_url 调用。所以我尝试了这个更简单的请求库。有人可以向我指出这里出了什么问题。