From dd82bc85e9cff59243e8cc53cba3853eaadfe8ad Mon Sep 17 00:00:00 2001 From: Kevin McKee Date: Wed, 2 Jul 2025 12:10:14 -0700 Subject: [PATCH 1/5] Feature and Installation sections. --- README.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/README.md b/README.md index 3f5f505..dab13bf 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,33 @@ OAuthKit is a contemporary, event-driven Swift Package that utilizes the [Observation](https://developer.apple.com/documentation/observation) Framework to implement the observer design pattern and publish [OAuth 2.0](https://oauth.net/2/) events. This enables application developers to effortlessly configure OAuth Providers and concentrate on developing exceptional applications rather than being preoccupied with the intricacies of authorization flows.
+## OAuthKit Features + +OAuthKit is a small, lightweight package that provides out of the box [Swift Concurrency](https://docs.swift.org/swift-book/documentation/the-swift-programming-language/concurrency/) support and observable OAuth 2.0 events that allow fine grained control over when and how to start authorization flows. Key features include: + +- [Simple Configuration](https://github.com/codefiesta/OAuthKit?tab=readme-ov-file#oauthkit-configuration) +- [Keychain protection with biometrics or companion device](https://github.com/codefiesta/OAuthKit?tab=readme-ov-file#oauth-initialized-with-keychain-protection-and-private-browsing) +- [Private Browsing with non-persistent WebKit Datastores](https://github.com/codefiesta/OAuthKit?tab=readme-ov-file#oauth-initialized-with-keychain-protection-and-private-browsing) +- [Custom URLSession](https://github.com/codefiesta/OAuthKit?tab=readme-ov-file#oauth-initialized-with-keychain-protection-and-private-browsing) configuration for complete control custom protocol specific data +- [Observable State](https://github.com/codefiesta/OAuthKit/blob/main/Sources/OAuthKit/OAuth.swift#L36) driven events to allow full control over when and if users are prompted to authenticate with an OAuth provider +- [Support for every OAuth 2.0 Flow](https://github.com/codefiesta/OAuthKit?tab=readme-ov-file#oauthkit-configuration) + - [Authorization Code](https://github.com/codefiesta/OAuthKit?tab=readme-ov-file#oauth-20-authorization-code-flow) + - [PKCE](https://github.com/codefiesta/OAuthKit?tab=readme-ov-file#oauth-20-pkce-flow) + - [Device Code](https://github.com/codefiesta/OAuthKit?tab=readme-ov-file#oauth-20-device-code-flow) + - [Client Credentials](https://github.com/codefiesta/OAuthKit?tab=readme-ov-file#oauth-20-client-credentials-flow) + - [OpenID Connect](https://www.oauth.com/playground/oidc.html) + +## OAuthKit Installation + +OAuthKit can easily be installed using [Swift Package Manager](https://www.swift.org/documentation/package-manager/): + +```swift +dependencies: [ + .package(url: "https://github.com/codefiesta/OAuthKit", from: "1.4.3") +] +``` + + ## OAuthKit Usage The following is an example of the simplest usage of using OAuthKit across multiple platforms (iOS, macOS, visionOS, tvOS, watchOS): From 3492e35cc0b8170ce0cb29b368834532a3d92e34 Mon Sep 17 00:00:00 2001 From: Kevin McKee Date: Wed, 2 Jul 2025 12:15:56 -0700 Subject: [PATCH 2/5] WIP --- README.md | 2 +- Sources/OAuthKit/OAuth.swift | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index dab13bf..a0fc28a 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ OAuthKit is a contemporary, event-driven Swift Package that utilizes the [Observ ## OAuthKit Features -OAuthKit is a small, lightweight package that provides out of the box [Swift Concurrency](https://docs.swift.org/swift-book/documentation/the-swift-programming-language/concurrency/) support and observable OAuth 2.0 events that allow fine grained control over when and how to start authorization flows. Key features include: +OAuthKit is a small, lightweight package that provides out of the box [Swift Concurrency](https://docs.swift.org/swift-book/documentation/the-swift-programming-language/concurrency/) safety support and [Observable](https://github.com/codefiesta/OAuthKit/blob/main/Sources/OAuthKit/OAuth.swift#L36) OAuth 2.0 state events that allow fine grained control over when and how to start authorization flows. Key features include: - [Simple Configuration](https://github.com/codefiesta/OAuthKit?tab=readme-ov-file#oauthkit-configuration) - [Keychain protection with biometrics or companion device](https://github.com/codefiesta/OAuthKit?tab=readme-ov-file#oauth-initialized-with-keychain-protection-and-private-browsing) diff --git a/Sources/OAuthKit/OAuth.swift b/Sources/OAuthKit/OAuth.swift index 8b8b7f6..fb6b12f 100644 --- a/Sources/OAuthKit/OAuth.swift +++ b/Sources/OAuthKit/OAuth.swift @@ -35,10 +35,10 @@ public enum OAError: Error { @Observable public final class OAuth { - /// A published list of available OAuth providers to choose from. + /// An observable list of available OAuth providers to choose from. public var providers = [Provider]() - /// An observable published oauth state. + /// An observable oauth state. public var state: State = .empty /// The url session to use for communicating with providers. From 396271240fc9c2daf72ec4d149d7fe5a7a9b54a7 Mon Sep 17 00:00:00 2001 From: Kevin McKee Date: Wed, 2 Jul 2025 12:17:08 -0700 Subject: [PATCH 3/5] WIP --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a0fc28a..516d0d0 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,9 @@ OAuthKit is a contemporary, event-driven Swift Package that utilizes the [Observ ## OAuthKit Features -OAuthKit is a small, lightweight package that provides out of the box [Swift Concurrency](https://docs.swift.org/swift-book/documentation/the-swift-programming-language/concurrency/) safety support and [Observable](https://github.com/codefiesta/OAuthKit/blob/main/Sources/OAuthKit/OAuth.swift#L36) OAuth 2.0 state events that allow fine grained control over when and how to start authorization flows. Key features include: +OAuthKit is a small, lightweight package that provides out of the box [Swift Concurrency](https://docs.swift.org/swift-book/documentation/the-swift-programming-language/concurrency/) safety support and [Observable](https://github.com/codefiesta/OAuthKit/blob/main/Sources/OAuthKit/OAuth.swift#L36) OAuth 2.0 state events that allow fine grained control over when and how to start authorization flows. + +Key features include: - [Simple Configuration](https://github.com/codefiesta/OAuthKit?tab=readme-ov-file#oauthkit-configuration) - [Keychain protection with biometrics or companion device](https://github.com/codefiesta/OAuthKit?tab=readme-ov-file#oauth-initialized-with-keychain-protection-and-private-browsing) From 10394cb1f09c5efcb92b6b54ef662333861f1dd6 Mon Sep 17 00:00:00 2001 From: Kevin McKee Date: Wed, 2 Jul 2025 12:17:58 -0700 Subject: [PATCH 4/5] WIP --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 516d0d0..54c8f65 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ OAuthKit can easily be installed using [Swift Package Manager](https://www.swift ```swift dependencies: [ - .package(url: "https://github.com/codefiesta/OAuthKit", from: "1.4.3") + .package(url: "https://github.com/codefiesta/OAuthKit", from: "1.4.3") ] ``` From 780c446b75742ba61e85aaf550c1288a04ded366 Mon Sep 17 00:00:00 2001 From: Kevin McKee Date: Wed, 2 Jul 2025 12:24:16 -0700 Subject: [PATCH 5/5] Shortened links --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 54c8f65..486e1f1 100644 --- a/README.md +++ b/README.md @@ -21,16 +21,16 @@ OAuthKit is a small, lightweight package that provides out of the box [Swift Con Key features include: -- [Simple Configuration](https://github.com/codefiesta/OAuthKit?tab=readme-ov-file#oauthkit-configuration) -- [Keychain protection with biometrics or companion device](https://github.com/codefiesta/OAuthKit?tab=readme-ov-file#oauth-initialized-with-keychain-protection-and-private-browsing) -- [Private Browsing with non-persistent WebKit Datastores](https://github.com/codefiesta/OAuthKit?tab=readme-ov-file#oauth-initialized-with-keychain-protection-and-private-browsing) -- [Custom URLSession](https://github.com/codefiesta/OAuthKit?tab=readme-ov-file#oauth-initialized-with-keychain-protection-and-private-browsing) configuration for complete control custom protocol specific data +- [Simple Configuration](#oauthkit-configuration) +- [Keychain protection with biometrics or companion device](#oauth-initialized-with-keychain-protection-and-private-browsing) +- [Private Browsing with non-persistent WebKit Datastores](#oauth-initialized-with-keychain-protection-and-private-browsing) +- [Custom URLSession](#oauth-initialized-with-keychain-protection-and-private-browsing) configuration for complete control custom protocol specific data - [Observable State](https://github.com/codefiesta/OAuthKit/blob/main/Sources/OAuthKit/OAuth.swift#L36) driven events to allow full control over when and if users are prompted to authenticate with an OAuth provider -- [Support for every OAuth 2.0 Flow](https://github.com/codefiesta/OAuthKit?tab=readme-ov-file#oauthkit-configuration) - - [Authorization Code](https://github.com/codefiesta/OAuthKit?tab=readme-ov-file#oauth-20-authorization-code-flow) - - [PKCE](https://github.com/codefiesta/OAuthKit?tab=readme-ov-file#oauth-20-pkce-flow) - - [Device Code](https://github.com/codefiesta/OAuthKit?tab=readme-ov-file#oauth-20-device-code-flow) - - [Client Credentials](https://github.com/codefiesta/OAuthKit?tab=readme-ov-file#oauth-20-client-credentials-flow) +- [Support for every OAuth 2.0 Flow](#oauthkit-configuration) + - [Authorization Code](#oauth-20-authorization-code-flow) + - [PKCE](#oauth-20-pkce-flow) + - [Device Code](#oauth-20-device-code-flow) + - [Client Credentials](#oauth-20-client-credentials-flow) - [OpenID Connect](https://www.oauth.com/playground/oidc.html) ## OAuthKit Installation