“现代化”OAUTH:回调不会触发

时间:2016-08-25 19:53:50

标签: google-oauth

这是参考:

https://developers.googleblog.com/2016/08/modernizing-oauth-interactions-in-native-apps.html

要求在#google-oauth下发布有关堆栈溢出的问题。

来自Android电子邮件应用程序开发人员的两个问题,尝试实现上面链接中所述的“现代化”OAUTH流程。

1 - 我在Google Developer Console中注册了我的回调URI,如下所示:org.kman.AquaMail:/oauth2redirect

2 - 我的代码基于https://accounts.google.com/o/oauth2/auth构建了一个批准URI,与WebView基本相同,但redirect_uri参数是上面的自定义方案URI。

3 - 我可以在Chrome自定义标签

中显示此批准URI

4 - 将此添加到我的清单中,将其复制出AppAuth-Android示例:

  <!-- OAUTH result activity for Gmail -->

  <activity android:name=".mail.oauth.OAuthGmailResultActivity">
      <intent-filter>
          <action android:name="android.intent.action.VIEW"/>

          <category android:name="android.intent.category.DEFAULT"/>
          <category android:name="android.intent.category.BROWSABLE"/>

          <data android:scheme="org.kman.AquaMail"/>
     

  

(唉,降价解析器吃了intent-filter和activity的结束标记,但它们就在那里)

到目前为止一切顺利(差不多)。

现在这变坏了:

当我实际登录时,在Chrome自定义标签中,通过在屏幕上按“允许”授予权限,该屏幕显示“应用程序想要” -

我的“结果活动”是具有我的自定义方案的intent过滤器的那个,不会被调用。

相反,Chrome标签只是重定向到google.com(在我的情况下是.ru)。

logcat中没有任何有趣的内容(例如尝试运行此活动失败)。

我该如何调试?

PS - 我知道自定义方案的approval_url就在那里,如果我点击“三个点”然后点击“信息”图标,我可以在Chrome标签中看到它。

1 个答案:

答案 0 :(得分:0)

咄。如果其他人碰到这个。

当approval_url回到我的应用程序时,它已被转换为小写。

因此org.kman.AquaMail:/oauth2redirect变为org.kman.aquamail:/oauth2redirect

因此&#34;结果活动&#34;的意图过滤器需要将该方案设为小写。