Client library for OAuth2/OpenID Connect
Clone or download
camilamacedo86 Merge pull request #89 from aerogear/update-github
Update github files - Remove license from GitHub dir
Latest commit c0e4634 Oct 8, 2018

README.md

aerogear-ios-oauth2

Maintenance circle-ci License GitHub release CocoaPods Platform

OAuth2 Client based on aerogear-ios-http.

Project Info
License: Apache License, Version 2.0
Build: CocoaPods
Languague: Swift 4
Documentation: http://aerogear.org/ios/
Issue tracker: https://issues.jboss.org/browse/AGIOS
Mailing lists: aerogear-users (subscribe)
aerogear-dev (subscribe)

Table of Content

Features

  • Account manager for multiple OAuth2 accounts,
  • Request access and refresh token,
  • Grant access through secure external browser and URI schema to re-enter app,
  • (implicit or explicit) refresh tokens,
  • Revoke tokens,
  • Permanent secure storage,
  • Adaptable to OAuth2 specific providers. Existing extensions: Google, Facebook, Keycloak
  • OpenID Connect login

Installation

CocoaPods

In your Podfile add:

pod 'AeroGearOAuth2'

and then:

pod install

to install your dependencies

Usage

Grant for GET with a predefined config like Facebook

let facebookConfig = FacebookConfig(
    clientId: "YYY",
    clientSecret: "XXX",
    scopes:["photo_upload, publish_actions"]
)
let oauth2Module = AccountManager.addFacebookAccount(config: facebookConfig)

let http = Http()
http.authzModule = oauth2Module
http.request(method: .get, path: "/get", completionHandler: {(response, error) in
	// handle response
})

OpenID Connect with Keycloak

let keycloakConfig = KeycloakConfig(
    clientId: "sharedshoot-third-party",
    host: "http://localhost:8080",
    realm: "shoot-realm",
    isOpenIDConnect: true
)
let oauth2Module = AccountManager.addKeycloakAccount(config: keycloakConfig)

let http = Http()
http.authzModule = oauth2Module
oauth2Module.login {(accessToken: AnyObject?, claims: OpenIdClaim?, error: NSError?) in // [1]
    // Do your own stuff here
}

Documentation

For more details about that please consult our documentation.

Demo apps

Take a look in our demo apps:

Development

If you would like to help develop AeroGear you can join our developer's mailing list, join #aerogear on Freenode, or shout at us on Twitter @aerogears.

Also takes some time and skim the contributor guide

Questions?

Join our user mailing list for any questions or help! We really hope you enjoy app development with AeroGear!

Found a bug?

If you found a bug please create a ticket for us on Jira with some steps to reproduce it.