環境-Python2.7.3、webpy。
Pythonweb.pyを使用してgithubの単純なoauth3ウェイ認証を試しています。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
、セッションURLを構成していないため、ブラウザーに404メッセージが表示されます。それは問題1ではありません。問題2-セッションURLを構成し、投稿メッセージを印刷した場合
class session:
def POST(self):
data = web.data()
print data
def GET(self):
print "callback called"
'authenticity_token'という名前でURLに投稿されたデータを見ることができます。
python_oauth2ライブラリを使用しようとしましたが、authorization_url呼び出しを通過できません。だから私はこのはるかに単純なリクエストライブラリを試しました。誰かがここで何が悪いのか私に指摘してもらえますか?