菜鸟教程小白 发表于 2022-12-11 19:50:10

ios - 如何在主 iOS 应用程序与其共享扩展之间使用相同的经过身份验证的用户 token


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

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

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

<ol>
<li><p>我们向主应用发送了一些内部调用以执行 Firebase 内容,因为其中包含身份验证详细信息。</p></li>
<li><p>主应用通过应用组将一些 token 设置为普通用户默认值,然后共享扩展程序将使用这些 token 自动重新进行身份验证。</p></li>
<li><p>或者 Firebase 提供了一些方法来做到这一点,</p></li>
</ol>

<p>我不知道从上面什么是可行的。
我找到了一个方法 <code>signInWithCustomToken:completion:</code> 但是,它与我实际查找的内容无关。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>要从同一组 NSUserDefaults 中读取和保存,您需要执行以下操作:</p>

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

<p>写入您的 NSUserDefaults:</p>

<pre><code>    // In this example I´m setting FirstLaunch value to true
NSUserDefaults(suiteName: &#34;group.myapp.test&#34;)!.setBool(true, forKey: &#34;FirstLaunch&#34;)
</code></pre>

<p>从 NSUserDefaults 读取:</p>

<pre><code>// Getting the value from FirstLaunch
let firstLaunch = NSUserDefaults(suiteName: &#34;group.myapp.test&#34;)!.boolForKey(&#34;FirstLaunch&#34;)

if !firstLaunch{
   ...
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何在主 iOS 应用程序与其共享扩展之间使用相同的经过身份验证的用户 token ,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/44455433/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/44455433/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何在主 iOS 应用程序与其共享扩展之间使用相同的经过身份验证的用户 token