我一直在尝试将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,它非常易于实现,并且坚如磐石。

10-08 20:22