iOS中的OAuth 2.0集成

Sup*_*off 27 authentication shared-libraries ios oauth-2.0

我已经尝试了很长时间才能在我的iPhone应用程序中获得OAuth 2.0集成.

我搜索并搜索了图书馆,教程等......但是他们都把我引向了死胡同.我遇到的主要问题是他们要么已弃用代码,要么他们只是不工作或者他们有一些文档,但它真的很难遵循(无论如何......).

我能为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"];
}
Run Code Online (Sandbox Code Playgroud)

dOM*_*dOM 5

在几乎所有项目中我都使用AFNetworking,因为它非常强大 - 为什么每次重新发明轮子:)

此外,它还有一个OAuth2Manager,它很容易实现,并且非常坚固.


ara*_*sss 0

Instagram 文档中说有两种身份验证方法。一种显式(用于服务器端身份验证)和一种隐式,用于客户端中的身份验证(无服务器)。

您正在应用程序内使用 Explicit ,请尝试更改userURLtohttps://instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=tokentokenURLto http://your-redirect-uri#access_token=ACCESS-TOKEN