OAuth2Client
Lightweight OAuth 2.0 Client with PKCE (Proof key for Code Exchange: see RFC 7636)
Usage
Sign in
OAuth2Client().signIn(request: request)
.receive(on: yourQueue)
.sink(receiveCompletion: { (completion) in
}, receiveValue: { (credential) in
credential.save()
})
Load Access Token
Credential.load()
Refresh
OAuth2Client().refresh(request: request)
.receive(on: yourQueue)
.sink(receiveCompletion: { (completion) in
}, receiveValue: { (credential) in
credential.save()
})
Sign Out
Removing cache on WebKit, and showing new auth screen.
OAuth2Client().signOut(request: request)
.receive(on: yourQueue)
.sink(receiveCompletion: { (completion) in
}, receiveValue: { (credential) in
credential.save()
})
Features
- Supporting OAuth 2.0 with PKCE
- Publish / refresh access token
- Combine interface
General notes for OAuth 2.0
- Make sure setting callback url scheme on your setting
Supported platforms
- macOS v11.0 and later
- iOS / iPadOS v14.0 and later
Installation
Only support via Swift package manager installation.
Swift Package Manager
dependencies: [
.package(url: "https://github.com/d-date/OAuth2Client.git", from: "0.1.0")
]