为什么OAuth流中的GitHub授权按钮显示为灰色?

时间:2017-06-08 01:26:43

标签: android github oauth github-api

我正在构建一个Android应用,使用OAuth向GitHub用户签名。我按照here的说明进行操作。作为该过程的第一部分,我向用户发送了URL

https://github.com/login/oauth/authorize?scope=repo&client_id=MY_CLIENT_ID

但是,当我在Android设备上登录时,Authorize xxxx按钮似乎显示为灰色,我无法点击它。有没有人知道为什么会这样? (下面的大截图)

我认为按钮可能不会在之前显示为灰色,第一次运行应用程序并登录。但是,我无法确定是因为我匆忙。

2 个答案:

答案 0 :(得分:3)

因此,我将链接粘贴到计算机上的Chrome中,并且OAuth流程运行正常。我注意到按钮一开始是灰色的,但随后变成了亮绿色。这让我想知道:Android WebView默认启用了JavaScript吗?果然,它不是。我发现this answer详细说明了如何启用JS。这是使一切运转起来的关键路线:

webView.getSettings().setJavaScriptEnabled(true);

答案 1 :(得分:0)

我绝对支持@ james-ko所说的-必须为WebView启用JS

但是有时没有帮助。我发现了更多信息,很乐意在这里分享。

相似的故事-我有一个应使用GitHub OAuth登录用户的应用程序,除“授权”按钮外,其他一切正常-在某些情况下,无论应用了什么设置,它都保持禁用状态。

以下是摘要:

  1. 在设置为22和23的模拟器上,无论设置和用户行为如何,该按钮始终处于禁用状态(尽管我没有尝试使用24-27)。

  2. 它在API 28和29的模拟器上运行良好。

  3. 在实际设备Pixel 3(API 29)上,该按钮最初被禁用,并且一段时间没有任何反应。但是,当我在随机的地方用两次胶带将屏幕录音时,它就启用了。重新启动的应用程序会重现这种情况:最初禁用的按钮->在屏幕上点击->按钮被启用。

显然,其中涉及一些反欺诈机制。

但是它给最终用户带来了很差的体验,它看起来像是应用程序中的错误,我们对此无能为力:-/