OStack程序员社区-中国程序员成长平台

标题: ios - 如何在主 iOS 应用程序与其共享扩展之间使用相同的经过身份验证的用户 token [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 19:50
标题: ios - 如何在主 iOS 应用程序与其共享扩展之间使用相同的经过身份验证的用户 token

我们的主应用与 Firebase SDK 集成。用户使用电子邮件、谷歌或 Facebook 通过主应用程序登录。

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

那么,有人知道在主应用和共享扩展之间共享 Firebase 身份验证 session 的方法吗?

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

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

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

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



Best Answer-推荐答案


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

  1. 在您的主应用中,在项目导航器中选择您的项目。
  2. 选择您的主要应用目标并选择功能选项卡。
  3. 打开应用组(这将与开发者门户进行通信,因为它正在生成一组权利和相关的应用 ID 等 第四次)。
  4. 创建一个新容器。根据帮助,它必须启动 加上“group.”,所以给它起一个名字,比如“group.myapp.test”。
  5. 选择 您的 Today Extension 目标并重复此开启过程 应用程序组。不要创建一个新的,而是选择这个新创建的 group 表示 Today Extension 是该组的成员。

写入您的 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  {
   ...
}

关于ios - 如何在主 iOS 应用程序与其共享扩展之间使用相同的经过身份验证的用户 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44455433/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4