2013 年 3 月 19 日更新
如果服务器是必须的中间人,那么我认为最简单的方法是获取域名并将服务器公开。www.godaddy.com 或任何域名提供商将以每年 15 美元左右的价格获得一个域名(如果有折扣会更低)。
之后,只需搜索如何获取动态 DNS 并将 redirect_uri 设置为已选择的域名。
否则,如果仅出于 oauth 目的,我看不到服务器的作用。作为下面列出的第二种方法,即使在严密防御的防火墙后面,设备也可以直接与谷歌服务器通信。(令牌将通过抛出标题栏)。
所以这里可能需要一些澄清。
本地主机服务器会像一个集线器一样从谷歌驱动器兑现文件然后重新分发到 iOS 设备吗?或者想在这里实现什么样的网络架构?
==
2013 年 3 月 18 日更新
根据官方文档
https://developers.google.com/accounts/docs/OAuth2InstalledApp#choosingredirecturi
oauth 有两种方式。使用 localhost 作为重定向只是一种方法。
另一个是使用这个字符串
urn:ietf:wg:oauth:2.0:oob
替换具有本地主机的请求。
例如,上一个请求的 localhost 为(注意:区别在于以 'redirect_uri=' 开头的中间行)
https://accounts.google.com/o/oauth2/auth?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile&
redirect_uri=http://localhost:9004&
response_type=code&client_id=812741506391-h38jh0j4fv0ce1krdkiq0hfvt6n5amrf.apps.googleusercontent.com
现在可以改成
https://accounts.google.com/o/oauth2/auth?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile&
redirect_uri=urn:ietf:wg:oauth:2.0:oob&
response_type=code&client_id=812741506391-h38jh0j4fv0ce1krdkiq0hfvt6n5amrf.apps.googleusercontent.com
所以在模拟器中访问前一个的url应该相当于在真实设备中访问后一个。
光环