如何在主iOS应用程序和其Share Extension之间使用相同的Authenticated用户令牌

时间:2017-06-09 10:27:23

标签: ios firebase-authentication ios-app-extension ios-app-group

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

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

那么,是否有人知道在主应用和共享扩展之间共享Firebase身份验证会话的方式?

  1. 我们向主应用程序发送了一些内部调用来执行Firebase内容,因为它中包含身份验证详细信息。

  2. 主应用程序通过应用程序组将一些令牌设置为常见用户默认值,然后Share扩展程序将使用它来自动重新进行身份验证。

  3. 或者Firebase提供了一些方法,

  4. 我不知道从上面可行的是什么。 我发现了一种方法signInWithCustomToken:completion:,但它与我实际需要的内容无关。

1 个答案:

答案 0 :(得分:0)

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

  1. 在您的主应用程序中,在项目导航器中选择您的项目。
  2. 选择您的主应用目标,然后选择功能标签。
  3. 启用应用程序组(这将与开发人员门户进行通信,因为它正在生成一组权利,以及相关的应用程序ID等等 等)。
  4. 创建一个新容器。根据帮助,它必须开始 使用“group。”,所以给它命名为“group.myapp.test”。
  5. 选择 您的今日扩展目标并重复此开启过程 应用程序组。不要创建新的,而是选择新创建的 group表示Today Extension是该组的成员。
  6. 写入您的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  {
       ...
    }