3

我想通过Firebase验证一个Digits用户。我曾多次听到您可以通过twitter端点来授权Digits用户。所以我现在正在尝试,但我几乎卡住了。我正在尝试将会话?.authToken发送到Firebase,以便我可以创建用户。数字看起来非常酷,所以我很确定我想坚持下去。如果这是完全不可能的,我也会非常欣赏被指向一个能够使用数字的BaaS的方向。在此先感谢这里是我的代码:如何通过Swift中的Firebase Twitter方法验证Digits用户?

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() 
    } 

,这里是DataService在:

class DataService{ 

    static let FireBase = DataService() 

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

    var Surfer: Firebase { 
     return _REF_BASE 
    } 
} 
+0

“如果这是完全不可能的我也真正体会所指出的,这将是能够与数字要工作巴斯的方向”技术建议是题外话堆栈溢出。 –

+0

谢谢。对不起,把这个问题。 – WikipediaBrown

回答

2

火力地堡不使用Twitter位数身份提供商不支持。

这意味着对使用数字认证用户在火力地堡的唯一方法是mint a custom token,基于所述位数ID。所以你让Digits处理认证,然后告诉Firebase究竟是什么结果。

这种方法的缺点是,你造币自定义标记需要使用您的火力地堡的秘密。这意味着你应该在客户端应用程序永不薄荷令牌,因为你会交给你的秘密与智慧的人看你的应用程序的资源。

+0

感谢您对此的快速回答。我认为我需要建立一个服务器来基本处理与Digits有关的任何事情,但我希望能有机会和祈祷,以便使用它。您是否知道有关如何在AWS中为此设置服务器的指南?如果您刚刚起步,几乎没有关于如何在AWS中完成任务的文档。 – WikipediaBrown

+0

“您是否知道有关如何在AWS中为此设置服务器的指南?”和以前一样,这种类型的问题与Stack Overflow相关。但我相当确定一些有针对性的谷歌搜索会产生大量的相关结果。 –

相关问题