首页 > 解决方案 > 打开应用内浏览器登录,获取cookie,在应用内使用cookie

问题描述

我有一个 Capacitor Ionic React 应用程序(PWA/iOS/Android),我一直在使用http 插件登录到 Drupal 9 后端。

最近,我通过 Drupal 的OpenID Connect模块为 Drupal 9 添加了“使用 Apple 登录”和“使用 Google 登录”支持。

这是登录流程在 Drupal 中的工作方式:

  1. 转到 Drupal 登录页面。
  2. 点击“使用 Google 登录”。
  3. 使用您的 Google 帐户登录。
  4. 被重定向回 Drupal。
  5. Drupal 为登录的 Google 帐户提供会话 cookie。

我想在 Ionic/Capacitor 中使用相同的流程。

因此,我添加了Capacitor 浏览器插件,并使用该插件创建了一个进入我的登录页面的应用内浏览器。

现在,在我的应用程序中,我可以使用应用程序内浏览器通过 Google 和 Apple 登录到我的 Drupal 站点。但是,会话 cookie 位于应用内浏览器中,当我关闭应用内浏览器时,我的 Capacitor 应用无法访问应用内浏览器会话 cookie。

有没有办法从启动应用内浏览器的本机应用程序访问应用内浏览器 cookie?

电容器论坛中的这篇帖子表明这可能是不可能的,但我想确认:有没有办法使用应用内浏览器登录网站,获取会话 cookie,然后使用该会话 cookie电容器/离子应用程序?

标签: ionic-frameworkcookiescapacitor

解决方案


您试图实现的目标可能行不通。以 iOS 为例,Capacitor Browser 插件SFSafariViewController在后台使用。SFSafariViewController本质上是一个 Safari 进程,在您的应用程序之外运行。因此,您的应用程序将无法访问 使用的 cookie SFSafariViewController,就像您的应用程序无法访问 Safari 中的 cookie 一样。


推荐阅读