Подтвердить что ты не робот

Интеграция OAuth 2.0 в iOS

Я пытаюсь целую вечность, чтобы получить интеграцию OAuth 2.0 в моем приложении iPhone.

Я искал и искал библиотеки, учебные пособия и т.д. Но они все привели меня в тупик. Главная проблема заключается в том, что у них либо устаревший код, либо они просто не работают, либо у них есть документация, но его очень трудно следовать (для меня в любом случае...).

Лучшая библиотека OAuth2, которую я смог найти для Xcode, таков: https://github.com/nxtbgthng/OAuth2Client

Но основная проблема с этим заключается в том, что он, кажется, ничего не делает... Я следил за всей документацией и инструкциями, которые были с ней, но после создания и запуска он, похоже, не аутентифицируется...

Итак, я думаю, что мой главный вопрос: кто-нибудь знает какие-либо хорошие и обновленные учебники OAuth 2.0 для Xcode или любых библиотек для такой вещи?

Потому что я действительно боюсь в данный момент....: (

Спасибо за ваше время, Дэн.

ОБНОВЛЕНИЕ 2: Вот мой код (Идентификатор приложения и секрет удалены для обеспечения безопасности):

- (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"];
}
4b9b3361

Ответ 1

Почти во всех проектах я использовал AFNetworking, потому что он очень мощный - зачем изобретать колесо каждый раз:)

Кроме того, он также имеет OAuth2Manager, который довольно прост в реализации и работает рок-твердо.

Ответ 2

В Документация по Instagram говорит, что существует два способа аутентификации. Один Explicit (для серверной версии auth) и один неявный, для auth на клиенте (без сервера).

Вы используете Явное внутри приложения, попробуйте изменить userURL на https://instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=token и tokenURL на http://your-redirect-uri#access_token=ACCESS-TOKEN.

Ответ 3

Скорее всего, вы не можете использовать секрет клиента в приложении iPhone (поскольку секрет клиента не может быть защищен), вам необходимо пройти аутентификацию через мобильное приложение или мобильный веб-сайт служб, а затем обработать URL-адрес перенаправления, согласно этой ссылке Я нашел на сайте разработчика Uber api: http://aaronparecki.com/articles/2012/07/29/1/oauth2-simplified

На этой странице есть какой-то код, который я тестирую сейчас: https://medium.com/swift-programming/learn-nsurlsession-using-swift-ebd80205f87c

В нижней части этой страницы есть также хорошая информация: http://www.idmworks.com/blog/entry/getting-started-with-oauth2client-on-ios

Ответ 4

Недавно я сделал простой pod https://github.com/kohtenko/KOSocialOAuth.

Вы можете легко соединить Instagram, VK или LinkedIn. Не стесняйтесь отправлять запрос Pull с любой другой конечной точкой OAuth.

Ответ 5

Обратите внимание на использование API-интерфейсов Instagram: https://github.com/shyambhat/InstagramKit. В комментариях я вижу, что у вас возникли проблемы с перенаправлением - посмотрите в URI Xcode Redirect URI на помощь в этом: Что такое URI перенаправления? как это применимо к iOS-приложению для OAuth2.0?