【问题标题】:How can I authenticate Digits users via Firebase Twitter method in Swift?如何在 Swift 中通过 Firebase Twitter 方法对 Digits 用户进行身份验证?
【发布时间】:2025-12-07 19:20:05
【问题描述】:

我正在尝试通过 Firebase 对 Digits 用户进行身份验证。我不止两次听说您可以通过 twitter 端点对 Digits 用户进行身份验证。所以我现在正在尝试,但我几乎被卡住了。我正在尝试将 session?.authToken 发送到 Firebase,以便我可以创建用户。 Digits 看起来真的很酷,所以我很确定我想坚持下去。如果这完全不可能,我也非常感谢被指出能够使用数字的 BaaS 的方向。提前致谢,这是我的代码:

override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        let authButton = DGTAuthenticateButton(authenticationCompletion: { (session: DGTSession?, error: NSError?) in
            if (session != nil) {
                // TODO: associate the session userID with your user model
                let message = "Phone number: \(session!.phoneNumber)"
                let alertController = UIAlertController(title: "You are logged in!", message: message, preferredStyle: .Alert)
                alertController.addAction(UIAlertAction(title: "Cancel", style: .Cancel, handler: .None))
                self.presentViewController(alertController, animated: true, completion: .None)
                DataService.FireBase.Surfer.authWithOAuthProvider("twitter", token: session!.authToken, withCompletionBlock: { error, newAuthData in
                    if error != nil {
                        print(error)

                    } else {
                        print(newAuthData)
                    }
                })

            } else {
                NSLog("Authentication error: %@", error!.localizedDescription)

            }
        })
        authButton.center = self.view.center
        self.view.addSubview(authButton)
        let button   = UIButton(type: UIButtonType.System) as UIButton
        button.frame = CGRectMake(100, 100, 100, 50)
        button.backgroundColor = UIColor.greenColor()
        button.setTitle("Test Button", forState: UIControlState.Normal)
        button.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside)

        self.view.addSubview(button)

    }

    func buttonAction(sender:UIButton!)
    {
        print("Button tapped")
        print(authTkn)
        Digits.sharedInstance().logOut()
    }

这里是数据服务:

class DataService{

    static let FireBase = DataService()

    private var _REF_BASE = Firebase(url: "https://testingtoday.firebaseio.com")

    var Surfer: Firebase {
        return _REF_BASE
    }
}

【问题讨论】:

  • “如果这完全不可能,我也非常感谢您指出能够使用数字的 BaaS 方向”技术建议在 Stack Overflow 上是题外话。
  • 谢谢。很抱歉提出这个问题。

标签: swift authentication twitter-fabric firebase-authentication twitter-digits


【解决方案1】:

Firebase 不支持将 Twitter Digits 用作身份提供者。

这意味着在 Firebase 中使用经过 Digits 身份验证的用户的唯一方法是根据 Digits ID 发送至 mint a custom token。因此,您让 Digits 处理身份验证,然后告诉 Firebase 生成的 uid 是什么。

这种方法的缺点是您铸造自定义令牌需要使用 Firebase 的密钥。这意味着您应该永远不要在客户端应用程序中创建令牌,因为您会将您的秘密交给任何聪明的人来查看您的应用程序的资源。

【讨论】:

  • 感谢您对此的快速回答。我想我需要设置一个服务器来基本上用 Digits 做任何事情,但我希望我可以使用它的机翼和祈祷。您是否知道有关如何在 AWS 中为此设置服务器的任何指南?如果您刚刚开始,几乎没有关于如何在 AWS 中完成任务的文档。
  • “您知道有关如何在 AWS 中为此设置服务器的任何指南吗?”和以前一样,这类问题在 Stack Overflow 上是题外话。但我敢肯定,一些针对性强的 Google 搜索会产生大量相关结果。
最近更新 更多