多年来,我一直在尝试在我的 iPhone 应用程序中集成 OAuth 2.0。
我已经搜索并搜索了库、教程等……但它们都将我带入了死胡同。我遇到的主要问题是他们要么有已弃用的代码,要么他们只是不工作,或者他们有一些文档,但真的很难遵循(无论如何对我来说......)。
我能为 Xcode 找到的最好的 OAuth2 库是这个:https ://github.com/nxtbgthng/OAuth2Client
但是那个的主要问题是它似乎没有做任何事情......我已经遵循了它附带的所有文档和说明,但是在构建和运行之后,它似乎没有进行身份验证......
所以我想我的主要问题是:有没有人知道任何好的和最新的 Xcode 的 OAuth 2.0 教程或任何类似的库?
因为我现在真的很挣扎.... :(
谢谢你的时间,丹。
更新 2:这是我的代码(为安全起见,删除了 App 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"];
}