【发布时间】:2014-12-29 00:28:47
【问题描述】:
当我在 2.2 和 2.3.4 设备上重新运行我的应用程序时,我注意到了这一点。基本上我有一个加载了 twitter4j 的客户端 getAuthenticationURL 的 WebView。
如果一切正确并单击“登录”,webview 将加载另一个页面,要求用户授权。从那里,“授权应用程序”将返回应用程序的自定义回调和用户令牌。
单击“登录”按钮将不再将 web 视图发送到授权页面。它只会留在那里。当我调试我的 WebViewClient 并探测 onPageStarted 时,我注意到发送了一个请求。但是Twitter没有任何回应。另外,在我的 4.4 Nexus 平板电脑中,没有授权页面。 “登录”将授权并立即返回回调。
到目前为止,我找到了三种解决方法(所有这些测试都是通过全新安装完成的):
- 点击取消,重启应用,重新加载相同的url+request token。这次没有登录。它将让 webview 直接加载授权页面。
- 这是全部破解。基本上我需要输入错误的密码,然后我会被发送到密码重新确认页面。如果我这次输入正确的密码,我会看到那个授权页面。事实上,上面的第二个快照是通过这种方式获得的。
-
如果我将该 url + 请求令牌粘贴到浏览器上,它也会跳过授权页面并立即返回我的回调。如果这适用于 startActivity-for-browser 方案,而不是嵌入式 webview,我还没有进行彻底的研究。 编辑:它有效,登录后,浏览器将发出警告,然后返回我的应用程序在 onNewIntent 中拦截的回调。没有授权页面。回调 url 也需要有回调主机,如 bla://callback
我很确定我能够在不久前使用旧设备浏览登录页面,包括授权。这个授权是坏的还是过时的?
【问题讨论】:
标签: android webview twitter-oauth twitter4j