環境 - Python 2.7.3,webpy。通過python oauth2庫的Github api v3訪問 - 重定向問題
我想爲使用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」網址的一些數據。
我試過使用python_oauth2庫,但無法通過authorization_url調用。所以我嘗試了這個更簡單的請求庫。有人可以指出我這裏出了什麼問題。
這是你正在遵循的指南:http://developer.github.com/guides/basics-of-authentication/?你在寫什麼「會話」?這是回調還是別的?此外,您不需要在初始請求中發送客戶端密鑰,只需發送客戶端ID和範圍,以及可選的重定向url:http://developer.github.com/v3/oauth/#web-application -流。您可以在回調處理程序中發送第二個請求中的客戶端密鑰。 – 2013-03-25 10:17:53
@IvanZuzak - 這是使用'http:// developer.github.com/v3/oauth /#web-application-flow'的開發指南Im。 – 2013-03-25 10:26:04
@IvanZuzak對不起,趕快輸入這個開發指南使用'http://developer.github.com/v3/oauth /#web-application-flow'我發送沒有client_secret的請求。同樣的結果。 '/ session'是我在輸入github用戶名密碼後在瀏覽器中看到的URL。 – 2013-03-25 10:32:29