appauth ios authentication oauth-2.0 shared-libraries

appauth - Integración OAuth 2.0 en iOS



authentication oauth-2.0 (5)

He estado intentando desde hace años para obtener la integración de OAuth 2.0 en mi aplicación de iPhone.

He buscado y buscado bibliotecas, tutoriales, etc. Pero todos me han llevado a un callejón sin salida. El problema principal que tengo es que o tienen un código obsoleto, o simplemente no funcionan o tienen cierta documentación, pero es realmente difícil de seguir (para mí de todos modos ...).

La mejor biblioteca de OAuth2 que pude encontrar para Xcode es esta: https://github.com/nxtbgthng/OAuth2Client

Pero el principal problema con eso es que no parece hacer nada ... He seguido toda la documentación y las instrucciones que vinieron con él, pero después de compilarlo y ejecutarlo, parece que no se autentica ...

Así que supongo que mi pregunta principal es: ¿alguien sabe de algún tutorial bueno y actualizado de OAuth 2.0 para Xcode o de alguna biblioteca para tal cosa?

Porque realmente estoy luchando en este momento ... :(

Gracias por tu tiempo, Dan.

ACTUALIZACIÓN 2: Aquí está mi código (Identificación de aplicación y secreto eliminado por seguridad):

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



En casi todos los proyectos he usado AFNetworking porque es muy poderoso, por qué reinventar la rueda cada vez :)

Además, también tiene un OAuth2Manager que es bastante fácil de implementar y funciona de forma sólida.


En la documentación de Instagram dice que hay dos maneras de autenticarse. Una explícita (para la autenticación del lado del servidor) y otra implícita, para la autenticación en un cliente (sin servidor).

Está utilizando el Explícito dentro de la aplicación, intente cambiar el userURL a https://instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=token y tokenURL a http://your-redirect-uri#access_token=ACCESS-TOKEN .


Lo más probable es que no pueda usar un secreto de cliente en una aplicación de iPhone (porque el secreto del cliente no puede protegerse), necesitará autenticarse a través de la aplicación móvil de servicios o sitio web móvil y luego manejar la url de redirección, según este enlace que encontré en el sitio del desarrollador de api de Uber: http://aaronparecki.com/articles/2012/07/29/1/oauth2-simplified

Hay un código en esta página para hacer precisamente eso, que estoy probando ahora: https://medium.com/swift-programming/learn-nsurlsession-using-swift-ebd80205f87c

También hay buena información en la parte inferior de esta página: http://www.idmworks.com/blog/entry/getting-started-with-oauth2client-on-ios


Recientemente, he creado un pod simple https://github.com/kohtenko/KOSocialOAuth .

Puedes conectar fácilmente Instagram , VK o LinkedIn . Siéntase libre de enviar Pull Request con cualquier otro punto final OAuth.