Swift Firebase Twitter OAuth登录如何移除“继续前往应用”中间跳转页
可以移除这个多余的中间跳转页,核心思路是绕过Firebase内置的OAuth中转流程,直接通过X(原Twitter)官方原生SDK获取授权凭证,再提交给Firebase做登录校验即可,具体操作如下:
- 首先在X开发者平台完成应用配置:登录X开发者后台,在你的项目下绑定对应iOS应用的Bundle ID、回调地址,确保已开启读取用户基本信息的相关权限。
- 集成X官方iOS登录SDK,可以通过CocoaPods或Swift Package Manager完成集成,替代原有Firebase OAuthProvider的跳转逻辑。
- 调整登录代码,示例如下:
import FirebaseAuth import TwitterKit // 若使用新版X SDK替换为对应导入语句 private func performTwitterLogin(completion: @escaping (_ credential: AuthCredential?, _ error: String?, _ user: User?)->Void) { // 调用X原生登录接口获取授权令牌 TWTRTwitter.sharedInstance().logIn { session, error in guard let session = session, error == nil else { return completion(nil, error?.localizedDescription, nil) } // 用X返回的令牌生成Firebase可识别的登录凭证 let credential = TwitterAuthProvider.credential( withToken: session.authToken, secret: session.authTokenSecret ) // 原有Firebase登录逻辑保持不变 Auth.auth().signIn(with: credential) { result, error in guard error == nil else { return completion(nil, error?.localizedDescription, nil) } completion(result?.credential, nil, result?.user) } } }
- 额外说明:如果你不想引入额外的第三方SDK,也可以手动实现Twitter OAuth 1.0a的授权流程,拿到授权令牌和密钥后,同样用上述方法生成Firebase凭证完成登录,也可以跳过Firebase的中转页。
内容的提问来源于stack exchange,提问作者Gianluca Bettega
相关产品推荐
相关产品推荐

