我正在编写一个包含Box功能的框架,因为我正在使用box-ios-sdk。但是他们所有的身份验证方法都使用自己的流程。我必须输入appID和appSecret,然后启动进程以获取由sdk内部管理的访问令牌。
这笔交易是我已经我自己的OAuth2 Flow实现了,我已经有了boxAPoken和boxAPI的刷新令牌。那么如何使用(或者以某种方式初始化)box-ios-sdk以及我已经拥有的标记?
示例:
[[BOXOAuth2Session alloc] initWithAccesstoken:(NSString *) refreshToken:(NSString *) expireDate:(NSDate *)];
或
[[BoxClient alloc] initWithAccesstoken:(NSString *) refreshToken:(NSString *) expireDate:(NSDate *)];
我一直在深入研究documentation和源代码,但仍未找到任何可行的方法。
答案 0 :(得分:3)
假设您已完全接管oAuth流程,包括在必要时间刷新访问令牌,您可以使用SDK的“App Users”模式。
以下是该文档: https://github.com/box/box-ios-sdk/blob/master/doc/AppUsers.md
在这种模式下,你基本上只需要在你正在使用的BOXContentClient上设置一个“BOXAPIAccessTokenDelegate”,然后实现“fetchAccessTokenWithCompletion:”委托方法来提供你自己的访问令牌。在此模式下,您只需确保“fetchAccessTokenWithCompletion:”的实现始终返回有效的访问令牌。