使用AppAuth-Android发出令牌交换授权请求,但不使用customtabs发出令牌交换授权请求

时间:2018-11-16 16:37:23

标签: android appauth

所以,这个问题的整个前提可能是愚蠢的,因此没有实际意义,但是在这里:

我有一个自定义的IdP,可以用OauthC令牌交换oauth1令牌+秘密。它实际上是一个静默授权请求,用于将已登录的应用程序从旧系统切换到新系统。这都是功能
但是,使用自定义标签执行请求意味着它会弹出浏览器。在未安装chrome的手机上执行此操作时,浏览器通常不会像chrome自定义标签一样在请求通过后自行关闭。我想通过不使用自定义标签来执行请求来完全避免这种情况。

因此,我使用okhttp来执行请求。 okhttp不处理重定向到uri的操作,因此在响应中,我:

if (response.isRedirect()){
    Intent intent = new Intent(Intent.ACTION_VIEW, 
        Uri.parse(response.headers().get("location")));
    startActivity(intent);
}

这可以达到net.openid.appauth.RedirectUriReceiverActivity的目的,但是现在需要检查AuthorizationRequest request = PendingIntentStore.getInstance().getOriginalRequest(state);,并且由于我的自定义performSilentAuthorizationRequest中无法访问原始请求,因此我无法将原始请求设置为PendingIntentStore。

我是否应该克隆AppAuth-Android只是为了破解对PendingIntentStore的访问?我想我也可以扩展RedirectUriReceiverActivity并将其更改为使用我可以访问的PendingIntentStore的独立副本。但这实际上是同一回事,只是绕过RedirectUriReceiverActivity的{​​{1}}支票。

开始所有这些操作是为了防止出现不必要的弹出UI的丑陋UI情况。因此,任何绕过该问题的建议都将受到欢迎。

0 个答案:

没有答案