我正在构建一个需要与OAuth服务提供商通信的Python应用程序.SP要求我指定一个回调URL.指定localhost显然不起作用.我无法设置面向公众的服务器.除了支付服务器/托管之外的任何想法?这甚至可能吗?
两件事情:
如果您未指定回调网址,则有问题的OAuth服务提供商违反了OAuth规范.callback_url被指定为可选参数.
但是,除了迂腐之外,您可能希望在用户完成后进行回调,以便您知道可以为访问令牌兑换请求令牌.Yahoo的FireEagle开发人员文档有很多关于如何执行此操作的重要信息.
即使在第二种情况下,回调URL实际上也不必从因特网上可见.OAuth服务提供商将重定向用户使用的浏览器,以将其用户名/密码提供给回调URL.
这样做的两种常见方法是:
从应用程序中创建一个愚蠢的Web服务,该服务侦听某个端口(例如,http:// localhost:1234 /)以进行完成回调,或者
注册协议处理程序(您必须查看操作系统的文档,具体说明如何执行此类操作,但它可以使工作).
(我相信你描述的流程的一个例子就是生活在这里.)
如果您使用的是*nix的风格体系,打造像别名127.0.0.1 mywebsite.dev
在/etc/hosts
(你需要有类似于该文件在上述行,使用http://website.dev/callbackurl/for/app
在回调URL,并在本地测试.