I realize that this modifier was created to be attached to the view that would be present for a callback listener. But even in the event that this modifier was positioned elsewhere, it should fail silently rather than force unwrap cookies. There could be other deeplinks happening at the same time. Alternatively we should be able to apply this modifier to the root view or even listen to a specific route and roward it accordlingly. Nevertheless, we shouldn't be force unwrapping anything here.
Maybe i'm misunderstanding the logic in the modifier.
public func registerOAuthHandler() -> some View {
onOpenURL { url in
WebAuthComponent.handleIncomingCookie(from: url)
}.onReceive(NotificationCenter.default.publisher(for: notificationType)) { _ in
WebAuthComponent.onCallback()
}
}
I was under the impression that this modifier was required. Are we suppose to be building our own?
i'd think we could modify this to validate the URLComponents before continuing..
public static func handleIncomingCookie(from url: URL) {
guard let components = URLComponents(string: url.absoluteString)!,
validateQueryComponent(components) else {
return
}
let components = URLComponents(string: url.absoluteString)!
let cookieParts = [String: String](uniqueKeysWithValues: components.queryItems!.map {
($0.name, $0.value!)
})
func validateQueryComponents(_ components: URLComponents) -> Bool {
.... to validate
}
that way the app doesn't have to be open to recieve the url, and not crash any other deeplinks i care to listen for elsewhere in the app.
Recommended threads
- I am currently seeking opportunities as ...
Hey! 👋 I'm a Shopify guy. Been building stores for 8+ years. Still haven't lost my mind. Barely. I make stores that don't suck fast, smooth, and actually built...
- Apple OAuth2 "Registration Not Complete"...
I'm getting a "Registration Not Complete" error when implementing Apple Sign In OAuth2 on self-hosted Appwrite. Environment: Self-hosted Appwrite (latest), iOS...
- Cannot use Apple Oauth2 in React Native/...
Hi! I've trying to add the Apple sign in feature into my Expo App. I followed the docs, but I still receiving the error "Cannot set 'location.href'". Can someon...