【发布时间】:2019-09-05 16:43:34
【问题描述】:
我正在为 Ionic 4 应用程序进行身份验证。我正在使用应用内浏览器插件登录。成功登录后,访问令牌将发送回客户端。我不知道如何从应用内浏览器获取令牌到应用程序。
【问题讨论】:
标签: ionic-framework cordova-plugins ionic4 ionic-native
我正在为 Ionic 4 应用程序进行身份验证。我正在使用应用内浏览器插件登录。成功登录后,访问令牌将发送回客户端。我不知道如何从应用内浏览器获取令牌到应用程序。
【问题讨论】:
标签: ionic-framework cordova-plugins ionic4 ionic-native
您可以使用事件侦听器,例如:
this.browser.on('loadstart').subscribe(event => { this.checkForToken(event); })
在哪里 checkForToken 可以查看您的“event.url”并解析要存储到 localStorage 的令牌或在应用内浏览器关闭后用于登录的其他方法。
【讨论】:
executeScript 方法运行 JS 代码。结合 on('loadstop') 和 executeScript 对我有帮助。
使用事件来监听加载开始和停止是一个很棒的主意。然而,我面临另一个问题。谷歌不允许使用应用内浏览器登录,我真的需要它。在四处询问并查看了类似的过去问题后,我发现了一个名为 BrowserTab 的 Cordova 插件。这太棒了,因为它是来自 chrome 的实例/自定义选项卡,所以它在谷歌登录时运行良好。另一个问题出现了。您不能将 Javascript 注入 BrowserTab 并且一旦完成就无法以编程方式关闭它。我环顾四周,这时我想到了 Deeplinks。我使用了Deeplinks plugin 并将我的访问令牌作为参数传递。当用户登录时,BrowserTab 使用 URL 中的访问令牌重定向到我的应用程序的自定义 URL 方案链接。现在它完美地工作了。我在某处读到 IOS 正在摆脱自定义 URL 方案链接。幸运的是,它仍然支持通用应用链接
【讨论】: