菜鸟教程小白 发表于 2022-12-13 00:04:32

ios - facebook 万岁 token 更新


                                            <p><p>我正在使用 Facebook iOS SDK 3.1。 </p>

<p>来自 FB <a href="https://developers.facebook.com/docs/howtos/login/extending-tokens" rel="noreferrer noopener nofollow">docs</a> </p>

<blockquote>
<p>Apps created from our Mobile SDKs (Android and iOS), from Desktop Apps and the server-side Login flow automatically get long-lived User Access Tokens. This long-lived token refreshes and extends each time the user triggers the auth flow.</p>
</blockquote>

<p> token 的有效期为 60 天。</p>

<p>我有当前的实现:</p>

<pre><code>- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions
{

if (!.isOpen) {
    if (.state == FBSessionStateCreatedTokenLoaded) {
      [ openWithCompletionHandler:^(FBSession *session,
                                                               FBSessionState status,
                                                               NSError *error) {}];
    }
   }
}
</code></pre>

<p>,但这只会在应用程序第一次启动或被杀死后触发。 </p>

<p>这里有几个问题:</p>

<ol>
<li><p>当应用程序正在使用但 60 天内没有进行任何 FB 调用时,扩展 token 的正确步骤应该是什么。 </p></li>
<li><p>假设应用程序正在运行或进入后台模式并且用户没有使用任何FB功能,例如分享/注销/登录, token 是否会自动更新?</p></li>
<li><p>通过 SDK 访问 FB 调用时,token 会自动更新并在 FBSession 中可用吗? </p></li>
</ol></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>澄清一下,在使用 Facebook SDK 3.1 时,访问 token 会在后台、进行 API 调用时或在身份验证流程期间刷新。自上次刷新时间起大约一天后会进行刷新。</p>

<ol>
<li>如果在这段时间内没有进行任何 FB 调用,并且 token 过期,您应该重新授权用户。这可能意味着它们是通过重新验证流程进行的。因此,当他们进行与 FB 相关的调用并且由于 token 过期而失败时,您应该重新验证(另请参阅 <a href="https://developers.facebook.com/docs/reference/api/errors/" rel="noreferrer noopener nofollow">https://developers.facebook.com/docs/reference/api/errors/</a> )。无论如何,您都应该将其构建到您的应用中,因为 token 过期或失效的方式可能不同。</li>
<li>不,它会在 API 调用时刷新(参见对 1 的回答)。</li>
<li>是的,在最后一次刷新后的一段时间后。</li>
</ol></p>
                                   
                                                <p style="font-size: 20px;">关于ios - facebook 万岁 token 更新,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/13993696/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/13993696/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - facebook 万岁 token 更新