【发布时间】:2015-09-07 04:46:35
【问题描述】:
当我在笔记本电脑 Chrome 浏览器上测试设置时,使用 sameWindow 和 newWindow 一切正常:我可以登录,例如 Facebook,并且用户已获得授权并且可以使用我的应用程序。
但是,当我尝试将应用程序部署到 android 并使用 inAppBrowser 时,事情就中断了。在我的应用程序中选择“通过 FB 登录”按钮时,我可以看到 inAppBrowser 框架显示 Facebook 移动网站要求登录。当我通过 Chrome 检查检查该特定窗口时,我可以看到来自 FB 的回调进入我的服务器上的omniauth,包括查询字符串中的状态和代码:
https://<app>.herokuapp.com/omniauth/facebook/callback?code=<code>&state=<state>
此请求收到 302 重定向到以下 URL:
https://<app>.herokuapp.com/api/v1/auth/facebook/callback
此后续请求收到 200 响应。到目前为止,一切似乎都很好,inAppBrowser 窗口关闭,我们回到我的移动应用程序,我看到 ng-token-auth "auth:login-success" 事件经过。
但是,对我的服务器的任何后续 API 请求都会收到 401 Not Authorized 响应。当我查看这些 API 请求的请求标头时,我没有看到笔记本电脑上的 Chrome 发送到服务器的任何标头,例如:access-token、client、expiry、token-type 和 uid。
如果您能提供任何关于在哪里寻找或我在这里缺少什么的建议,我将不胜感激。
谢谢!
【问题讨论】:
标签: angularjs oauth ionic cordova-plugins ngcordova