Open dnsco opened 3 years ago
If authorizeEmbedded
is not set, it will open Safari and doesn't recognize the useAuthenticationSession
Setting. So to use you must set
oauth2.authConfig.authorizeEmbedded = true
The Fatal Error is there because of the missing context. But the current version (5.3.1) doesn't work with SwiftUI, because the type of the presentation context was changed. So for a quick fix use version 5.3.0. With this version the ASWebAuthenticationSession opens as expected.
Create an ASPresentationAnchor:
let presentationAnchor = ASPresentationAnchor()
Then set it as context for for the OAuth library:
let oauth2 = OAuth2CodeGrant(settings: [
//...
] as OAuth2JSON)
oauth2.logger = OAuth2DebugLogger(.trace)
oauth2.authConfig.authorizeContext = presentationAnchor
oauth2.authConfig.authorizeEmbedded = true
oauth2.authConfig.ui.useAuthenticationSession = true
oauth2.authorize() {(json, err) in
//...
}
For me, it's working with 5.3.1. I'm using:
oauth2.logger = OAuth2DebugLogger(.trace)
oauth2.authConfig.ui.useAuthenticationSession = true
oauth2.authConfig.authorizeEmbedded = true
oauth2.authConfig.authorizeContext = UIApplication.shared.windows.first!.rootViewController!`
I've got the following code, but it's launching a safari window instead of an ASWebAuthenticationSession.
I'm not sure if this is because I'm using SwiftUI?
This could be user error, but it wasn't clear from the docs.
If I set:
I get: