Is your feature request related to a problem? Please describe.
When using the OAuth flow in this package for a macOS desktop application, I can only redirect from the authorization flow to http or https URLs.
Describe the solution you'd like
On macOS and iOS it's natural to be able to redirect to apps via custom schemes they claim on the operating system. ASWebAuthenticationSession supports these directly: https://developer.apple.com/documentation/authenticationservices/aswebauthenticationsession/init(url:callback:completionhandler:)-6nut7
ASWebAuthenticationSession ensures that only the calling app’s session receives the authentication callback, even when more than one app registers the same callback URL scheme.
Additional context
Currently, only http and https schemes are supported:
public func validateRedirectURI(_ url: URL) throws {
guard let components = URLComponents(url: url, resolvingAgainstBaseURL: false),
let scheme = components.scheme?.lowercased(),
components.fragment == nil
else {
throw OAuthAuthorizationError.invalidRedirectURI(url.absoluteString)
}
if scheme == OAuthURLScheme.https { return }
if scheme == OAuthURLScheme.http,
let host = components.host?.lowercased(),
OAuthLoopbackHost.isLoopback(host)
{
return
}
throw OAuthAuthorizationError.invalidRedirectURI(url.absoluteString)
}
Is your feature request related to a problem? Please describe.
When using the OAuth flow in this package for a macOS desktop application, I can only redirect from the authorization flow to
httporhttpsURLs.Describe the solution you'd like
On macOS and iOS it's natural to be able to redirect to apps via custom schemes they claim on the operating system. ASWebAuthenticationSession supports these directly: https://developer.apple.com/documentation/authenticationservices/aswebauthenticationsession/init(url:callback:completionhandler:)-6nut7
Additional context
Currently, only
httpandhttpsschemes are supported: