web-dev-qa-db-ja.com

OAuth iOSの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"];
}
27
Supertecnoboff

ほとんどすべてのプロジェクトで AFNetworking を使用しました。これは非常に強力だからです-毎回車輪を再発明する理由:)

さらに、 OAuth2Manager もあり、これは実装が非常に簡単で堅実に動作します。

5
dOM

最近、シンプルなポッドを作成しました https://github.com/kohtenko/KOSocialOAuth

InstagramVK、またはLinkedInを簡単に接続できます。他のOAuthエンドポイントと一緒にPull Requestを送信してください。

0
Oleg Kohtenko

In Instagram documentation は、認証する方法が2つあることを示しています。 1つの明示的(サーバー側認証用)と1つの暗黙的、クライアント内の認証用(サーバーなし)。

アプリ内でExplicitを使用しています。userURLhttps://instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=tokenに、tokenURLhttp://your-redirect-uri#access_token=ACCESS-TOKENに変更してみてください。

0
aramusss

Instagram APIの使用についてはこちらをご覧ください: https://github.com/shyambhat/InstagramKit 。コメントでは、リダイレクトに問題があることがわかります-XcodeのリダイレクトURIを参照してください: リダイレクトURIとは?OAuth2.0のiOSアプリにどのように適用されますか?

0
DHShah01

あなたはおそらく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

0
Roger Perkins