试图了解OAuth 2.0。我正在使用PhoneGap Build和JQM构建一个跨平台的谷歌驱动器应用程序。
我可以在iOS和Android上正确格式化请求网址。它使用InAppBrowser(尝试过的子浏览器)提示用户输入ID / PW。下一个用户在网页上获得蓝色按钮提示“允许访问”,就像在其他谷歌网站/应用程序上一样。在Android上一切都很好用户点击允许访问和回调找到成功代码,我可以获取令牌。在iOS上,我在InAppBrowser的状态栏中收到“加载错误”消息,但我无法捕获错误以查看它是什么。在调用startLoad或endLoad事件之前,似乎重定向参数会破坏事物,以便在Google的响应中捕获成功/失败。
使用oauth2-playground我的网址看起来是正确的,就像我说它在Android上正常运行一样。
任何人都有任何想法我需要关注iOS的哪些差异?被困在这里几天了。任何和所有的帮助非常感谢。
我已经尝试重定向回http // localhost和http // localhost / afterOauth.html,其中afterOauth.html是应用中的一个页面,用于为重定向提供调用startLoad / endLoad事件的内容。
更新:我认为问题与我提供原始Google请求的重定向有关。如果我将“localhost”更改为urn:ietf:wg:oauth:2.0:oob在google文档中显示Android和iOS的行为相同。他们带我到一个页面说“请复制此代码,切换到您的应用程序并将其粘贴到那里”,其下方的代码= 4 / MyCode。
另外,我添加了一个loaderror回调。它不会在Android上启动,但会在iOS上发出错误代码-1004并且错误消息:无法连接到服务器。但是在这个loadror的event.url中,它清楚地显示了code = 4 / myCode。 iOS和Google之间成功的OAuth缺少什么链接?