我正在为Ionic 4应用程序进行身份验证。我正在使用in app浏览器插件登录。成功登录后,将访问令牌发送回客户端。我无法弄清楚如何从应用程序内浏览器中获取令牌到应用程序。
您可以使用事件监听器,例如:
this.browser.on('loadstart').subscribe(event => { this.checkForToken(event); })
其中checkForToken可以查看您的“event.url”并解析要存储的令牌到localStorage,或者在应用程序内浏览器关闭后用于登录的其他方法。
使用事件来监听负载启动和停止是一个很棒的主意。然而,我正面临另一个问题。谷歌不允许使用应用程序内浏览器登录,我真的需要它。在四处询问并查看类似的过去问题之后,我遇到了一个名为BrowserTab的Cordova插件。这很棒,因为它是来自chrome的实例/自定义选项卡,所以它与谷歌登录工作正常。另一个问题出现了。你不能将Javascript注入BrowserTab,一旦完成就无法以编程方式关闭它。我更多地环顾四周,这就是Deeplinks浮现在脑海中的时候。我使用了Deeplinks plugin并将我的访问令牌作为参数传递。当用户登录时,BrowserTab会使用URL中的访问令牌重定向到我的应用程序的自定义URL方案链接。现在它完美无缺。我已经读过IOS正在摆脱自定义URL方案链接的地方。幸运的是,它仍然支持Universal App Links