Post

Replies

Boosts

Views

Activity

Reply to ASWebAuthenticationSession with Universal link never dismiss the sign-in screen
I create a singleton class to handle this SceneDelegate @available(iOS 13.0, *)     func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {         // handle here         OAuthManager.instance.callBackUserActivity(userActivity: userActivity)     } OAuthManager.swift import Foundation import AuthenticationServices protocol UserActivityListener {     func callBackUserActivity( userActivity : NSUserActivity ) } class OAuthManager {     public static let instance = OAuthManager()     var asWebSession: ASWebAuthenticationSession? } extension OAuthManager : UserActivityListener {     func callBackUserActivity(userActivity: NSUserActivity) {         // Get URL components from the incoming user activity.         guard userActivity.activityType == NSUserActivityTypeBrowsingWeb,               let incomingURL = userActivity.webpageURL,               let components = NSURLComponents(url: incomingURL, resolvingAgainstBaseURL: true) else {             return         }                  // Check for specific URL components that you need.         guard let path = components.path,               let params = components.queryItems else {             return         }         asWebSession?.cancel()         print("path = \(userActivity.webpageURL)")         if let token = params.first(where: { $0.name == "x-auth" })?.value {             print("token = \(token)")         }     } } Your ViewController class CallWebViewViewController: UIViewController { // set your instance var oauthManager = OAuthManager.instance private func startSignInAsWebAuthSession() { let callbackURLScheme = "YOURAPP" guard let authURL = URL(string: "YOUR URL LINK") else { return } self.oauthManager.asWebSession = ASWebAuthenticationSession.init(url: authURL, callbackURLScheme: callbackURLScheme,completionHandler: { callbackURL, error in // we dont listen to the call back, this web authentication session only open for login only }) oauthManager.asWebSession?.prefersEphemeralWebBrowserSession = true oauthManager.asWebSession?.presentationContextProvider = self oauthManager.asWebSession?.start() } } extension CallWebViewViewController: ASWebAuthenticationPresentationContextProviding { func presentationAnchor(for session: ASWebAuthenticationSession) -> ASPresentationAnchor { ASPresentationAnchor() } }
Topic: Programming Languages SubTopic: Swift Tags:
Sep ’22
Reply to Universal links not working when user credentials are auto filled and auto submitted on iOS
Same issue here, anybody has workaround for this?
Topic: App & System Services SubTopic: General Tags:
Replies
Boosts
Views
Activity
Sep ’22
Reply to ASWebAuthenticationSession with Universal link never dismiss the sign-in screen
I create a singleton class to handle this SceneDelegate @available(iOS 13.0, *)     func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {         // handle here         OAuthManager.instance.callBackUserActivity(userActivity: userActivity)     } OAuthManager.swift import Foundation import AuthenticationServices protocol UserActivityListener {     func callBackUserActivity( userActivity : NSUserActivity ) } class OAuthManager {     public static let instance = OAuthManager()     var asWebSession: ASWebAuthenticationSession? } extension OAuthManager : UserActivityListener {     func callBackUserActivity(userActivity: NSUserActivity) {         // Get URL components from the incoming user activity.         guard userActivity.activityType == NSUserActivityTypeBrowsingWeb,               let incomingURL = userActivity.webpageURL,               let components = NSURLComponents(url: incomingURL, resolvingAgainstBaseURL: true) else {             return         }                  // Check for specific URL components that you need.         guard let path = components.path,               let params = components.queryItems else {             return         }         asWebSession?.cancel()         print("path = \(userActivity.webpageURL)")         if let token = params.first(where: { $0.name == "x-auth" })?.value {             print("token = \(token)")         }     } } Your ViewController class CallWebViewViewController: UIViewController { // set your instance var oauthManager = OAuthManager.instance private func startSignInAsWebAuthSession() { let callbackURLScheme = "YOURAPP" guard let authURL = URL(string: "YOUR URL LINK") else { return } self.oauthManager.asWebSession = ASWebAuthenticationSession.init(url: authURL, callbackURLScheme: callbackURLScheme,completionHandler: { callbackURL, error in // we dont listen to the call back, this web authentication session only open for login only }) oauthManager.asWebSession?.prefersEphemeralWebBrowserSession = true oauthManager.asWebSession?.presentationContextProvider = self oauthManager.asWebSession?.start() } } extension CallWebViewViewController: ASWebAuthenticationPresentationContextProviding { func presentationAnchor(for session: ASWebAuthenticationSession) -> ASPresentationAnchor { ASPresentationAnchor() } }
Topic: Programming Languages SubTopic: Swift Tags:
Replies
Boosts
Views
Activity
Sep ’22
Reply to ASWebAuthenticationSession callbackURLScheme
Hi, Have you resolved this issue? url scheme is https, http, blob, ... so that your url scheme might put it wrongly, for example you want it return with "holalo" then you set your callBackUrlScheme = "holalo" then your server return / redirect should be holalo://ios/matriga/hola?token=1234 Just my 2 cents.
Topic: App & System Services SubTopic: Core OS Tags:
Replies
Boosts
Views
Activity
Aug ’22