Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# This is the official list of the AppAuth for iOS authors for copyright purposes.
# This file is distinct from the CONTRIBUTORS files.
# See the latter for an explanation.
# Names should be added to this file as:
# Name or Organization <email address>
# The email address is not required for organizations.

Google Inc.
Rebecka Gulliksson <rebecka.gulliksson@gmail.com>
Ping Identity
equinux AG
Craig Lane <lane.craig.m@gmail.com>
Hernan Zalazar <hernan.zalazar@gmail.com>
Julien Bodet <julien.bodet92@gmail.com>

78 changes: 78 additions & 0 deletions AppAuth.podspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
Pod::Spec.new do |s|

s.name = "AppAuth"
s.version = "1.4.0"
s.summary = "AppAuth for iOS and macOS is a client SDK for communicating with OAuth 2.0 and OpenID Connect providers."

s.description = <<-DESC

AppAuth for iOS and macOS is a client SDK for communicating with [OAuth 2.0]
(https://tools.ietf.org/html/rfc6749) and [OpenID Connect]
(http://openid.net/specs/openid-connect-core-1_0.html) providers. It strives to
directly map the requests and responses of those specifications, while following
the idiomatic style of the implementation language. In addition to mapping the
raw protocol flows, convenience methods are available to assist with common
tasks like performing an action with fresh tokens.

It follows the OAuth 2.0 for Native Apps best current practice
([RFC 8252](https://tools.ietf.org/html/rfc8252)).

DESC

s.homepage = "https://openid.github.io/AppAuth-iOS"
s.license = "Apache License, Version 2.0"
s.authors = { "William Denniss" => "wdenniss@google.com",
"Steven E Wright" => "stevewright@google.com",
"Julien Bodet" => "julien.bodet92@gmail.com"
}

# Note: While watchOS and tvOS are specified here, only iOS and macOS have
# UI implementations of the authorization service. You can use the
# classes of AppAuth with tokens on watchOS and tvOS, but currently the
# library won't help you obtain authorization grants on those platforms.

s.ios.deployment_target = "7.0"
s.osx.deployment_target = "10.9"
s.watchos.deployment_target = "2.0"
s.tvos.deployment_target = "9.0"

s.source = { :git => "https://github.com/openid/AppAuth-iOS.git", :tag => s.version }
s.requires_arc = true

# Subspec for the core AppAuth library classes only, suitable for extensions.
s.subspec 'Core' do |core|
core.source_files = "Source/AppAuthCore.h", "Source/AppAuthCore/*.{h,m}"
end

# Subspec for the full AppAuth library, including platform-dependant external user agents.
s.subspec 'ExternalUserAgent' do |externalUserAgent|
externalUserAgent.dependency 'AppAuth/Core'

externalUserAgent.source_files = "Source/AppAuth.h", "Source/AppAuth/*.{h,m}"

# iOS
externalUserAgent.ios.source_files = "Source/AppAuth/iOS/**/*.{h,m}"
externalUserAgent.ios.deployment_target = "7.0"
externalUserAgent.ios.frameworks = "SafariServices"
externalUserAgent.ios.weak_frameworks = "AuthenticationServices"

# macOS
externalUserAgent.osx.source_files = "Source/AppAuth/macOS/**/*.{h,m}"
externalUserAgent.osx.deployment_target = '10.9'
end

s.subspec 'EnterpriseUserAgent' do |enterpriseUserAgent|
enterpriseUserAgent.dependency 'AppAuth/Core'

enterpriseUserAgent.ios.source_files = "Source/AppAuthEnterpriseUserAgent.h", "Source/AppAuthEnterpriseUserAgent/iOS/**/*.{h,m}"
enterpriseUserAgent.ios.deployment_target = "7.0"
end

# Subspec for the full AppAuth library, including platform-dependant external user agents.
s.subspec 'TV' do |tv|
tv.source_files = "Source/AppAuthTV.h", "Source/AppAuthTV/*.{h,m}"
tv.dependency 'AppAuth/Core'
end

s.default_subspecs = 'Core', 'ExternalUserAgent'
end
201 changes: 201 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,201 @@
# AppAuth for iOS and macOS Changelog

## 1.4.0

### Added

1. Support for Swift Package Manager

## 1.3.1

### Fixes

1. Removed `UIWebView` reference in comment

## 1.3.0

### Notable Changes

1. Support for Mac Catalyst

## 1.2.0

### Notable Changes

1. Support for iOS 13

## 1.1.0

### Notable Changes

1. [OpenID Connect RP-Initiated Logout](http://openid.net/specs/openid-connect-session-1_0.html#RPLogout) implemented
2. Added logic for the `azp` claim

### Fixes

1. Scheme comparison for redirects is now case insensitive
2. Improved error handling during discovery when a non-JSON document
is encountered.

## 1.0.0

1.0.0! 🎉

### Notable Changes

1. **All deprecated APIs removed.** Please ensure your code builds on
version 0.95.0 with no deprecation warnings before upgrading!
Notably, if you started with a version of AppAuth prior to 0.93.0
you will need to follow the instructions in
[Upgrading to 0.93.0](#upgrading-to-0930)
2. Updated for iOS 12, and Xcode 10. **Xcode 10 is now required.**
NB. per policy, AppAuth supports many older versions of iOS and
macOS, but only the current Xcode toolchain.
If you need to stay on old versions of Xcode for some reason, stay
on the pre-1.0 releases.
3. macOS 32-bit support removed. If you need this support, stay on the
pre-1.0 releases.
4. `AppAuth/Core` subspec, and AppAuthCore Framework added to support
iOS extensions.

## 1.0.0.beta2 (2018-09-27)

### Notable Changes

1. `AppAuth/Core` subspec, and AppAuthCore Framework added to support
iOS extensions.

## 1.0.0.beta1 (2018-09-27)

First 1.0.0 beta! HEAD is now tracking changes for the 1.0.0 release.
The `pre-1.0` branch was cut prior to the breaking changes for 1.0.0,
bug fixes for critical issues may be backported for a time.

### Notable Changes

1. **All deprecated APIs removed.** Please ensure your code builds on
version 0.95.0 with no deprecation warnings before upgrading!
Notably, if you started with a version of AppAuth prior to 0.93.0
you will need to follow the instructions in
[Upgrading to 0.93.0](#upgrading-to-0930)
2. Updated for iOS 12, and Xcode 10. **Xcode 10 is now required.**
NB. per policy, AppAuth supports many older versions of iOS and
macOS, but only the current Xcode toolchain.
If you need to stay on old versions of Xcode for some reason, stay
on the pre-1.0 releases.
3. macOS 32-bit support removed. If you need this support, stay on the
pre-1.0 releases.

### Fixes

1. All fixes in the 0.95.0 release are incorporated in this release.

## 0.95.0 (2018-09-27)

### Fixes

1. `x-www-form-urlencoded` encoding and decoding should be 100%
spec compliant now, previously the `+` character was not decoded as
0x20 space. https://github.com/openid/AppAuth-iOS/pull/291

2. `scope` no longer sent during token refresh (was redundant)
https://github.com/openid/AppAuth-iOS/pull/301

## 0.94.0 (2018-07-13)

### Fixes
1. `form-urlencode` client ID and client secret in Authorization header

### Added

1. Samples have icons now!
2. Output trace logs by defining `_APPAUTHTRACE`

## 0.93.0 (2018-06-26)

### Notable Changes

1. Implements OpenID Connect (ID Token handling) and the OpenID Connect
RP Certification test suite.
https://github.com/openid/AppAuth-iOS/pull/101

2. The `OIDAuthorizationUICoordinator` pattern was genericized to
support non-authorization external user-agent flows like logout
(though none are directly implemented by AppAuth, yet).
`OIDAuthorizationUICoordinator*` classes renamed to
`OIDExternalUserAgent*`.
https://github.com/openid/AppAuth-iOS/pull/196
https://github.com/openid/AppAuth-iOS/pull/212
See [Upgrading to 0.93.0](#upgrading-to-0930).

3. Added custom browser support on iOS. Provides several
convenience implementations of alternative external user-agents on
iOS such as Chrome and Firefox. These are intended for
**enterprise use only**, where the app developers have greater
control over the operating environment and have special requirements
that require a custom browser like Chrome.
See the [code example](https://github.com/openid/AppAuth-iOS/issues/200#issuecomment-364610027).
https://github.com/openid/AppAuth-iOS/issues/200
https://github.com/openid/AppAuth-iOS/pull/201

### Upgrading to 0.93.0

0.93.0 deprecates several methods. To update your code to avoid the
deprecated methods (which will be required for the 1.0.0 release),
you will need to make changes.

If you implemented your own `OIDAuthorizationUICoordinator`, or called
the methods which accepted a `UICoordinator` instance, you will need to
update to the new method names. See the deprecation error messages
for the new methods to use in those cases.

Most users who are using the convenience methods of AppAuth will only
need to make the following 3 minor changes to their AppDelegate:

#### Import:

Change
```objc
@protocol OIDAuthorizationFlowSession;
```
to
```objc
@protocol OIDExternalUserAgentSession;
```

#### Property:

Change
```objc
@property(nonatomic, strong, nullable) id<OIDAuthorizationFlowSession> currentAuthorizationFlow;
```
to
```objc
@property(nonatomic, strong, nullable) id<OIDExternalUserAgentSession>currentAuthorizationFlow;
```

#### Implementation of `-(BOOL)application:openURL:options:`
Change
```objc
if ([_currentAuthorizationFlow resumeAuthorizationFlowWithURL:url]) {
```
to
```objc
if ([_currentAuthorizationFlow resumeExternalUserAgentFlowWithURL:url]) {
```

See also the changes made to the sample which you can copy:
https://github.com/openid/AppAuth-iOS/commit/619bb7c7d5f83cc2ed19380d425ca8afa279644c?diff=unified


## 0.92.0 (2018-01-05)

### Improvements

1. Added an official Swift sample, and included Swift testing in the
continuous integration tests.

## Pre 0.92.0

No changelog entries exist for changes prior to 2018, please review the
[git history](https://github.com/openid/AppAuth-iOS/commits/0.91.0).
59 changes: 59 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Contributing to AppAuth

All contributions to AppAuth for iOS are welcome!

Note that as this library is planned to be used in high-profile production code,
we insist on a very high standards for the code and design, but don't feel shy:
discuss your plans over
[GitHub Issues](https://github.com/openid/AppAuth-iOS/issues) and the
[mailing list](http://lists.openid.net/mailman/listinfo/openid-specs-ab), and
send in those pull requests!

# Signing the Agreements

In order to contribute to this project, you need to execute two legal agreements
that cover your contributions. Pull requests from users who have not signed
these agreements will not be merged.

## Execute the Contributor License Agreement (CLA)

1. Visit http://openid.net/contribution-license-agreement/
2. Tap *Execute OpenID Foundation Contribution License Agreement* for the
version relevant to you (Individual or Corporate).
3. Follow the instructions to sign the agreement.

## Execute the Working Group Contribution Agreement

In addition to the Code License Agreement, the OpenID Foundation also requires
a working group contribution agreement to cover any contributions you may make
towards the OpenID Connect spec itself (e.g. in comments, bug reports, feature
requests).

1. Visit http://openid.net/intellectual-property/
2. Tap *Execute Contributor Agreement By Electronic Signature* in the box
marked *Resources*.
3. Follow the instructions to sign the document, state `OpenID AB/Connect` as
the Initial Working Group

# Making a Pull Request

## Before you Start

Before you work on a big new feature, get in touch to make sure that your work
is inline with the direction of the project and get input on your architecture.
You can file an [Issue](https://github.com/openid/AppAuth-iOS/issues)
discussing your proposal, or email the
[list](http://lists.openid.net/mailman/listinfo/openid-specs-ab).

## Coding Standards

The AppAuth library follows the
[Google Coding Style](https://google.github.io/styleguide/objcguide.xml) for
the Objective-C language. Please review your own code for adherence to the
standard.

## Pull Request Reviews

All pull requests, even by members who have repository write access need to be
reviewed and marked as "LGTM" before they will be merged.

22 changes: 22 additions & 0 deletions CONTRIBUTORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# People who have agreed to one of the CLAs and can contribute patches.
# The AUTHORS file lists the copyright holders; this file
# lists people. For example, Google employees are listed here
# but not in AUTHORS, because Google holds the copyright.
#
# https://developers.google.com/open-source/cla/individual
# https://developers.google.com/open-source/cla/corporate
#
# Names should be added to this file as:
# Name <email address>

Steven E Wright <stevewright@google.com>
William Denniss <wdenniss@google.com>
Iain McGinniss <iainmcgin@google.com>
Xiangtian Dai <xiangtian@google.com>
Rebecka Gulliksson <rebecka.gulliksson@gmail.com>
David Waite <dwaite@pingidentity.com>
Craig Lane <lane.craig.m@gmail.com> https://github.com/ProjectLane
Hernan Zalazar <hernan.zalazar@gmail.com> https://github.com/hzalaz
Joseph Heenan <joseph@emobix.co.uk> https://github.com/jogu
Julien Bodet <julien.bodet92@gmail.com> https://github.com/julienbodet
Tobias Schröpf <schroepf@gmail.com> https://github.com/schroepf
Loading