菜鸟教程小白 发表于 2022-12-13 02:52:37

文件上传的iOS身份验证?


                                            <p><p>我正在努力弄清楚如何使用我的 Box 身份验证 token 来使用 Box API。我已经在我的应用程序中构建了身份验证流程,以便我可以将相关部分(访问 token 、刷新 token 等)保存到钥匙串(keychain)中。我遇到的问题是,每当我重新打开应用程序时,我似乎都找不到合适的方法来设置我的 BoxOAuth2Session 或任何重新使用保存的 token 将文件上传到 Box 的方法。目前,我正在使用我的 clientID 和 secret 重新创建 BoxOAuth2Session,并在该 session 上手动设置 accessToken、refreshToken 等值。我创建了一个 BoxFilesResourceManager,附加了这个 BoxOAuth2Session,并使用 uploadFileWithInputStream 上传了一个文件。此请求总是以 401 失败。我能够将文件上传到 Box 的唯一方法是<em>立即</em>在使用 .filesManager 的登录步骤之后。重新创建 OAuth 状态以访问 API 的预期工作流程是什么?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p><code>BoxOAuth2Session</code> 绑定(bind)到 SDK 实例。当您访问 <code></code> 单例时,您使用的是已经与自己的 <code>BoxOAuth2Session</code> 和管理器实例连接的 SDK 实例。在正常使用中,我们建议使用 <code>sharedSDK</code> 单例,因此您应该操作附加到此 SDK 的 <code>BoxOAuth2Session</code>。</p>

<p>执行此操作的一种方法是尝试从钥匙串(keychain)加载刷新 token 并在 <code>OAuth2Session</code> 上设置 <code>refreshToken</code> 属性。</p>

<pre><code>.OAuth2Session.clientID = @&#34;YOUR_CLIENT_ID&#34;;
.OAuth2Session.clientSecret = @&#34;YOUR_CLIENT_SECRET&#34;;

// set up stored OAuth2 refresh token
self.keychain = [ initWithIdentifier:REFRESH_TOKEN_KEY accessGroup:nil];

id storedRefreshToken = ;
if (storedRefreshToken)
{
    .OAuth2Session.refreshToken = storedRefreshToken;
}
</code></pre>

<p>SDK 将自动刷新 OAuth2session 并在下次 API 调用时获取新的访问 token 和刷新 token ,只要刷新 token 未被撤销且未过期。您不妨<a href="https://github.com/box/box-ios-sdk-sample-app/blob/master/BoxSDKSampleApp/BoxSDKSampleApp/BoxNavigationController.m#L48" rel="noreferrer noopener nofollow">manually trigger a heartbeat call to force a refresh</a> .</p>

<p>我们整理了<a href="https://github.com/box/box-ios-sdk-sample-app/blob/master/BoxSDKSampleApp/BoxSDKSampleApp/BoxAppDelegate.m" rel="noreferrer noopener nofollow">a sample app that demonstrates how to store and load refresh tokens using the keychain</a> .</p>

<p>附带说明,我们不建议将访问 token 存储在设备上,因为此 token 是不记名 token ;丢失此 token 可能会让 Mallory 冒充您应用的用户。</p></p>
                                   
                                                <p style="font-size: 20px;">关于文件上传的iOS身份验证?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/17056554/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/17056554/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: 文件上传的iOS身份验证?