我们最近将AppAuth集成到我们的应用程序中,以自动化OAuth2授权代码流。当用户想要登录时,他首先被重定向到我们的auth服务器,在那里他继续登录,然后被重定向回应用程序。
我们使用chrome-custom-tabs打开登录页面(AppAuth)。问题是它有时会卡在空白屏幕上(chrome选项卡只显示没有渲染网站或重定向的空白页面)。当用户已在浏览器中拥有会话时,会发生这种情况,因此选项卡应自动关闭并将用户重定向回应用程序(已通过身份验证)。它表现不一致,我们有时只遇到这个问题(~50 / 50)。
我很乐意添加一些代码,但不知道从哪里开始(试图避开文本墙)。是否存在已知问题或警告?
我们尝试按照here所述切换上下文,但仍遇到同样的问题。
答案 0 :(得分:3)
这里是AppAuth的主要维护者。这很可能发生,因为授权重定向正在发生而没有任何用户交互。 Chrome会强制执行一项政策,即只有在用户操作触发重定向时才会向您的应用发送重定向,例如提交重定向或点击链接的表单。
如果您正在整合的IDP支持它,您可以通过" prompt = consent"作为强制用户交互的参数。或者,您可以设置一个中间页面来捕获重定向并显示一个"欢迎回来"消息,带有链接或按钮以返回到您的应用。
答案 1 :(得分:1)
另一种方法是使用户每次都使用登录屏幕。
只需将“ .setPrompt(” login“)”添加到authRequestBuilder。
所以我将是:
val authRequest = authRequestBuilder
.setPrompt("login")
.build()