A ViewController for Instagram authentication.
A UIViewController subclass that handles showing the Instagram login page, the authentication dance and finally returning the access token that can be used to communicate with the Instagram API afterwards.
Inspired by Instagram-Auth-iOS. Used PhotoBrowser as a stepping stone. I rewrote the login part in Swift, replced third-party library code with built-in Cocoa Touch frameworks and made it reusable.
- iOS 8.0+
- Xcode 7.3<
- Download or clone the repo.
- Open the source folder.
- Add
InstagramAuthViewController.swiftto your project. - Profit(?)!
- Go to Instagram's developer portal and register your application.
- Take note of the client ID, client secret and redirect URI values.
let clientId = "<YOUR CLIENT ID>" let clientSecret = "<YOUR CLIENT SECRET>" let redirectUri = "<YOUR REDIRECT URI>"- Simply add the
InstagramAuthViewControlleras theUIViewController's class in the Identity inspector.
let instagramAuthViewController = segue.destinationViewController as! InstagramAuthViewController instagramAuthViewController.delegate = self instagramAuthViewController.clientId = clientId instagramAuthViewController.clientSecret = clientSecret instagramAuthViewController.redirectUri = redirectUri- Initialize an instance of
InstagramAuthViewControllerand present it like a normal ViewController.
let instagramAuthViewController = InstagramAuthViewController(clientId: clientId, clientSecret: clientSecret, redirectUri: redirectUri) instagramAuthViewController.delegate = self presentViewController(instagramAuthViewController, animated: true, completion: nil)- Either way, don't forget to implement the
InstagramAuthDelegate.
func instagramAuthControllerDidFinish(accessToken: String?, error: NSError?) { if let error = error { print("Error logging in to Instagram: \(error.localizedDescription)") } else { print("Access token: \(accessToken!)") } }I would love for you to contribute to InstagramAuthViewController, check the LICENSE file for more info. Pull requests, bug fixes, improvements welcome.
Isuru Nanayakkara – @IJNanayakkara – isuru.nan@gmail.com
Distributed under the MIT license. See LICENSE for more information.

