我一直在尝试将OAuth 2.0集成到我的iPhone应用程序中。
我搜索并搜索了库,教程等。但是它们都使我陷入困境。我的主要问题是他们要么已经弃用了代码,要么根本不起作用,或者有一些文档,但确实很难遵循(无论如何对我来说……)。
我可以为Xcode找到的最好的OAuth2库是:https://github.com/nxtbgthng/OAuth2Client
但是它的主要问题是它似乎什么也没做...我已经遵循了它附带的所有文档和说明,但是在构建和运行之后,它似乎没有进行身份验证...。
因此,我想我的主要问题是:有人知道关于Xcode的任何好的最新OAuth 2.0教程,或有关此类东西的任何库吗?
因为此刻我真的很挣扎.... :(
丹,谢谢您的宝贵时间。
更新2:这是我的代码(为安全起见,删除了应用ID和密码):
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
oauthClient = [[LROAuth2Client alloc]
initWithClientID:@"MY_CLIENT_ID"
secret:@"MY_APP_SECRET"
redirectURL:[NSURL URLWithString:@"app://instagram-callback/?code="]];
oauthClient.delegate = self;
oauthClient.userURL = [NSURL URLWithString:@"https://api.instagram.com/oauth/authorize/?client_id=ab6dc96859bf43b3a488199ec72d9964&redirect_uri=app://instagram-callback/?code=&response_type=code"];
oauthClient.tokenURL = [NSURL URLWithString:@"https://api.instagram.com/oauth/access_token/"];
[oauthClient authorizeUsingWebView:myWebView];
}
- (void)oauthClientDidReceiveAccessToken:(LROAuth2Client *)client;
{
LROAuth2AccessToken *token = client.accessToken;
[NSKeyedArchiver archiveRootObject:token toFile:@"Path/To/MyAccessToken"];
}
- (void)checkAccessTokenForExpiry:(LROAuth2AccessToken *)accessToken;
{
if ([accessToken hasExpired]) {
[oauthClient refreshAccessToken:accessToken];
}
}
- (void)oauthClientDidRefreshAccessToken:(LROAuth2Client *)client;
{
LROAuth2AccessToken *token = client.accessToken;
[NSKeyedArchiver archiveRootObject:token toFile:@"Path/To/MyAccessToken"];
}
最佳答案
在几乎所有项目中,我都使用了AFNetworking,因为它非常强大
-为什么每次都要重新发明轮子:)
此外,它还具有一个OAuth2Manager,它非常易于实现,并且坚如磐石。