Ionic Android OpenID 认证问题

Ionic Android OpenID authentication problem

我有一个 Ionic Angular 应用程序,我正在将其部署到 Android 设备。我正在使用 OpenID + KeyCloak 进行身份验证,在客户端,我通过使用 angular-auth-oidc-client 来处理这个问题。我设置的配置是:

    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

在本地部署或在我的服务器上的自定义域上部署时,它工作得很好,但是在移动设备 phone 上作为应用程序进行测试时,它不起作用。我注意到 window.location.origin 的值是 http://localhost。登录成功后,以${window.location.origin}/?state='token'&code='token'的形式发起请求,其中'token'为OAuth生成的token的值。当在移动设备上发出此请求时,请求 http://localhost/?state=...&code=... 无法识别并且应用程序无法启动,我只收到网页不存在的错误屏幕。

有什么办法可以解决这个问题吗? 谢谢

答:由于app的源地址是http://localhost,而本地服务器不是phone上的运行,解决方法是更改​​redirect_url参数应用程序包 ID 的身份验证配置。示例:com.package.id://家

这将在 OAuth 页面中完成身份验证后将您重定向回应用程序