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

如何从Facebook OAuth获取idToken?Supabase Swift端Facebook认证方案咨询

Swift端实现Supabase Facebook登录的替代方案

虽然Supabase Swift SDK没有直接封装Facebook登录的专属API,但你可以复用现有signInWithIdToken方法,结合Facebook官方SDK完成认证,逻辑和你用Google Provider的流程一致,具体步骤如下:

  • 集成Facebook iOS SDK
    按Facebook官方要求配置项目(比如在Info.plist中添加权限声明、URL Scheme等),并初始化登录按钮或自定义登录触发逻辑。

  • 获取Facebook认证令牌
    用户登录成功后,从Facebook SDK的AccessToken中提取关键信息:

    guard let accessToken = AccessToken.current else { return }
    let facebookUserId = accessToken.userID
    let facebookAccessToken = accessToken.tokenString
    
  • 调用Supabase接口完成认证
    以facebook作为provider值,将获取到的令牌传入signInWithIdToken方法:

    let credentials = OpenIDConnectCredentials(
        provider: "facebook",
        idToken: facebookUserId,
        accessToken: facebookAccessToken
    )
    
    Task {
        do {
            let session = try await client.auth.signInWithIdToken(credentials: credentials)
            // 登录成功后的业务逻辑
        } catch {
            print("Facebook登录失败:\(error.localizedDescription)")
        }
    }
    
  • 关键注意事项

    • 确保Supabase控制台已启用Facebook认证提供商,并配置正确的App ID和App Secret
    • 保证Facebook SDK版本与你的Xcode、iOS目标版本兼容
    • 可监听AccessTokenDidChange通知,处理登录状态的变更与持久化

内容的提问来源于stack exchange,提问作者Mahsidak

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 04:42:02