Python 如何在本地针对OAuth进行开发?
我正在构建一个需要与OAuth服务提供商通信的Python应用程序。SP要求我指定回调URL。指定localhost显然不起作用。我无法设置面向公众的服务器。除了支付服务器/主机费用,还有其他想法吗?这可能吗?这可能会帮助您: 它是php,所以在您的开发服务器上进行设置应该非常简单 我试过一次: 这很简单。在底部有一个下载代码的链接。两件事:Python 如何在本地针对OAuth进行开发?,python,oauth,Python,Oauth,我正在构建一个需要与OAuth服务提供商通信的Python应用程序。SP要求我指定回调URL。指定localhost显然不起作用。我无法设置面向公众的服务器。除了支付服务器/主机费用,还有其他想法吗?这可能吗?这可能会帮助您: 它是php,所以在您的开发服务器上进行设置应该非常简单 我试过一次: 这很简单。在底部有一个下载代码的链接。两件事: 如果您没有指定回调URL,那么所讨论的OAuth服务提供程序会给您一个错误,那么它违反了OAuth规范。回调url为 但是,撇开迂腐不谈,您可能希望在
您可以创建两个应用程序吗?一个用于部署,另一个用于测试
或者,在请求请求令牌时,还可以包括oauth_回调参数。一些提供商将重定向到oauth_回调指定的url(例如Twitter、Google),但一些提供商将忽略此回调url,并重定向到配置期间指定的url(例如Yahoo)这是使用Facebook oauth的-我实际上能够指定'http://127.0.0.1:8080'作为站点URL和回调URL。Facebook应用程序的更改花了几分钟才得以传播,但随后就奏效了。如果您使用的是*nix风格的系统,请在
/etc/hosts中创建一个别名,如127.0.0.1 mywebsite.dev
(您需要有与文件中上述内容类似的行,请使用http://website.dev/callbackurl/for/app
在回调URL和本地测试期间。因此,我如何解决这个问题(使用BitBucket的OAuth接口)是通过指定本地主机的回调URL(或者任何您真正想要的),然后使用curl跟随授权URL,但只返回HTTP头。示例:
curl --user BitbucketUsername:BitbucketPassword -sL -w "%{http_code} %{url_effective}\\n" "AUTH_URL" -o /dev/null
插入您的凭据和授权url(请记住省去感叹号!)
你应该得到的是这样的东西:
200 http://localhost?dump&oauth_verifier=OATH_VERIFIER&oauth_token=OATH_TOKEN
你可以从这里刮下誓言验证器
在python中执行相同的操作:
import pycurl
devnull = open('/dev/null', 'w')
c = pycurl.Curl()
c.setopt(pycurl.WRITEFUNCTION, devnull.write)
c.setopt(c.USERPWD, "BBUSERNAME:BBPASSWORD")
c.setopt(pycurl.URL, authorize_url)
c.setopt(pycurl.FOLLOWLOCATION, 1)
c.perform()
print c.getinfo(pycurl.HTTP_CODE), c.getinfo(pycurl.EFFECTIVE_URL)
我希望这对某人有用!这方面的警告(至少对于BitBucket)是,您必须访问URL才能至少在开始时单击“接受”。然后我认为它会记住您的凭据。Windows还有一个主机文件。在Windows 7上,它位于C:\Windows\System32\drivers\etc\hosts