6

我们最近将 AppAuth 集成到我们的应用程序中以自动化 OAuth2 授权代码流。当用户想要登录时,他首先被重定向到我们的身份验证服务器,在那里他继续登录,然后被重定向回应用程序。

我们使用 chrome-custom-tabs 来打开登录页面 (AppAuth)。问题是它有时会卡在空白屏幕上(chrome 选项卡仅显示空白页面而没有呈现的站点或重定向)。当用户已经在浏览器中有会话时会发生这种情况,因此选项卡应自动关闭并将用户重定向回应用程序(经过身份验证)。它的行为不一致,我们有时只会遇到这个问题(~50/50)。

我很高兴添加一些代码,但不知道从哪里开始(试图避免文字墙)。是否存在已知问题或警告?

我们尝试按照此处所述切换上下文,但一直遇到同样的问题。

4

2 回答 2

6

AppAuth 的主要维护者在这里。这很可能发生,因为授权重定向是在没有任何用户交互的情况下发生的。Chrome 强制执行一项政策,即仅当重定向由用户操作触发时才会向您的应用发送重定向,例如提交重定向的表单或单击链接。

如果您正在集成的 IDP 支持它,您可以传递“prompt=consent”作为参数来强制用户交互。或者,您可以设置一个中间页面来捕获重定向并显示“欢迎回来”消息,并带有一个链接或按钮以返回您的应用程序。

于 2018-03-28T01:56:18.880 回答
1

另一种方法是让用户每次都使用登录屏幕。

只需将“.setPrompt(“login”)”添加到 authRequestBuilder。

所以我的将是:

val authRequest = authRequestBuilder
        .setPrompt("login")
        .build()
于 2019-07-02T12:46:44.960 回答