为了避免所有这些问题,我建议您实现一个暂存页面,用于处理所有OAuth2重定向。
AFAIK重定向到网页不需要用户同意,与重定向到应用程序相比,受限制更少。
因此,您的逻辑将更改为以下内容:
-
清除铬饼干
-
清除应用程序存储
-
Android应用程序加载带有Chrome自定义选项卡的登录URL
-
-
将URL重定向到你的webapp,然后使用它得到的任何参数将其重定向到你的应用,即。
Access Token
注销过程也是如此。在您的网页中,您将拥有一个自动重定向(例如使用JS)和一个故障切换选项,用户单击按钮返回到您的应用程序。您的页面将如下所示:
<!doctype html>
<html lang="en">
<head>
<script type="text/javascript">
document.addEventListener("DOMContentLoaded", function() {
document.getElementById("redirectButton").click();
setTimeout(function() {
window.location.href = "{{ path('homepage') }}";
}, 10000);
});
</script>
</head>
<body>
<p>Redirecting to XXX app, it will only take few seconds...</p>
<a href="{{ redirect_url }}" id="redirectButton">Click here to go back to XXX App</a>
</body>
</html>