You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在重定向至外部网站而非App通用链接时关闭ASWebAuthenticationSession

问题解决方案

首先明确:ASWebAuthenticationSession(简称AS)默认确实需要重定向到自定义URL Scheme(如app://redirect)或已配置的关联通用链接,才能自动触发会话关闭回调,普通的HTTPS API端点无法直接触发这个逻辑。不过你这个场景有两种可行的解决办法,不用完全改变现有授权流程:

解决办法一:自定义URL Scheme中转

  1. 在Xcode项目的「Info」标签页里,添加自定义URL Scheme(比如yourapp,对应app://redirect)。
  2. 初始化ASWebAuthenticationSession时,把callbackURLScheme参数设为你配置的scheme(比如yourapp):
    let authSession = ASWebAuthenticationSession(
        url: yourAuthStartURL,
        callbackURLScheme: "yourapp"
    ) { callbackURL, error in
        // 处理回调逻辑
        if let callbackURL = callbackURL {
            // 从回调URL里提取授权码等参数
            let code = callbackURL.queryItems?.first(where: { $0.name == "code" })?.value
            // 手动请求你的HTTPS API端点完成后续流程
            fetchTokenFromAPI(code: code)
        }
        // 会话会自动关闭,也可在此做额外清理
    }
    authSession.present()
    
  3. 修改你的授权流程,最终重定向到app://redirect?code=xxx这类带参数的自定义URL。
  4. 在AppDelegate或SceneDelegate里处理这个URL的跳转(确保App能捕获到该Scheme):
    // AppDelegate示例
    func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
        if url.scheme == "yourapp" {
            return ASWebAuthenticationSession.resumeExternalUserAgentFlow(with: url)
        }
        return false
    }
    

解决办法二:配置关联域名(HTTPS通用链接)

如果不想用自定义Scheme,也可以用HTTPS的通用链接触发AS的回调:

  1. 在苹果开发者后台,给你的App ID开启「Associated Domains」权限。
  2. 在Xcode项目的「Signing & Capabilities」里添加「Associated Domains」,并添加webcredentials:api.example.com(你的API域名)。
  3. 在你的API服务器根目录放置apple-app-site-association文件,内容示例:
    {
        "webcredentials": {
            "apps": ["你的TeamID.你的BundleID"]
        }
    }
    
  4. 确保授权流程最终重定向到https://api.example.com/redirect,此时系统会识别这是关联的通用链接,触发AS的回调,你就能在回调里处理并关闭会话。

额外说明

  • 谷歌登录支持ASWebAuthenticationSession,因为这是苹果官方推荐的第三方认证组件,系统会标记为可信的认证会话,不会像WKWebView那样被谷歌拒绝,只要解决回调触发的问题,就能正常走通谷歌登录+你的授权流程。
  • 两种方法里,自定义URL Scheme实现更简单快速,关联域名适合追求更原生HTTPS体验的场景。

内容的提问来源于stack exchange,提问作者Paweł Madej

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 08:20:43