如何在主 iOS 应用及其共享扩展之间使用相同的经过身份验证的用户令牌



我们将主应用与Firebase SDK集成在一起。用户通过电子邮件,谷歌或Facebook通过主应用程序登录。

现在,我们已经实现了共享扩展,

理想情况下应该在内部共享相同的身份验证会话,以便可以在Firebase上与同一用户发送数据,而无需要求他通过扩展程序再次登录。

那么,有谁知道在主应用程序和共享扩展之间共享Firebase身份验证会话的方法?

  1. 我们要么向主应用发送一些内部调用来执行 Firebase 操作,因为它包含身份验证详细信息。

  2. 主应用通过应用组将一些令牌设置为普通用户默认值,然后共享扩展将使用这些令牌自动重新进行身份验证。

  3. 或者Firebase提供了一些方法来做到这一点,

我不知道从上面看什么是可行的。我找到了一种方法signInWithCustomToken:completion:但是,它与我实际寻找的内容无关。

要从同一组 NSUserDefaults 读取和保存,您需要执行以下操作:

  1. 在主应用程序中,在项目导航器中选择您的项目。
  2. 选择主应用目标,然后选择功能选项卡。
  3. 打开应用组(这将与开发人员门户通信,因为它正在生成一组权利以及相关的应用 ID 等四(。
  4. 创建新容器。根据帮助,它必须启动使用"group.",因此请给它起一个类似"group.myapp.test"的名称。
  5. 选择您的今日扩展目标并重复此打开过程应用组。不要创建一个新的,而是选择这个新创建的组,以表示今日扩展是该组的成员。

写入 NSUserDefaults:

    // In this example I´m setting FirstLaunch value to true 
NSUserDefaults(suiteName: "group.myapp.test")!.setBool(true, forKey: "FirstLaunch")

从 NSUserDefaults 读取:

// Getting the value from FirstLaunch
let firstLaunch = NSUserDefaults(suiteName: "group.myapp.test")!.boolForKey("FirstLaunch")
if !firstLaunch  {
   ...
}

相关内容

  • 没有找到相关文章

最新更新