Android OIDC客户端身份验证问题

Android OIDC客户端身份验证问题,android,angular,ionic-framework,keycloak,openid-connect,Android,Angular,Ionic Framework,Keycloak,Openid Connect,我有一个ionic应用程序,我正在android设备上开发和部署。我正在应用程序中使用angular auth oidc客户端进行用户身份验证。这是我的配置: 注意:为了简洁起见,省略了sts服务器和clientId,它们不相关 scope: 'openid profile tino_access', silentRenewUrl: `${window.location.origin}/silent-renew.html`, responseTyp

我有一个ionic应用程序,我正在android设备上开发和部署。我正在应用程序中使用angular auth oidc客户端进行用户身份验证。这是我的配置: 注意:为了简洁起见,省略了sts服务器和clientId,它们不相关

        scope: 'openid profile tino_access',
        silentRenewUrl: `${window.location.origin}/silent-renew.html`,
        responseType: 'code',
        postLogoutRedirectUri: window.location.origin,
        silentRenew: true,
        silentRenewUrl: `${window.location.origin}/silent-renew.html`,
        logLevel: LogLevel.Warn,
        postLoginRoute: window.location.origin,
        useRefreshToken: true,
我确信一切都设置正确,因为当在网页上访问我的移动应用程序时,一切正常,身份验证正常。 但是,当在移动设备上部署时(源站为localhost),在访问keydape登录页面并正确输入登录凭据后,会向验证令牌的STS服务器发出请求。我需要将其发送到服务器,但我希望我的应用程序在本地主机域上运行。如果我将redirectUrl正确设置为服务器,那么它可以工作,但应用程序不再是本地应用程序,它只是网页的镜像

我可以看出这是一种存储和检查会话令牌的机制,但很清楚为什么它在移动设备上不起作用。有人知道可能的解决方案/解决方法吗


感谢

web和移动OAuth之间存在差异,总结如下:

  • Web UI登录使用与呈现普通视图相同的浏览器窗口类型,使用HTTPS回调URL
  • 移动应用程序登录使用系统浏览器的一种形式来触发登录,并且通常使用自定义URL方案来接收响应
一些科技公司试图在网络和移动设备上使用相同的解决方案。这可能在渲染方面起作用,但在OAuth方面不起作用。相反,对于移动应用程序,您需要遵循指南

移动解决方案通常称为AppAuth模式。要在Android上开始使用它,可以从我的开始