3

Я пытаюсь аутентифицировать пользователя Digits через Firebase. Я уже более двух раз слышал, что вы можете авторизовать пользователей через конечные точки Twitter. Так что я сейчас пытаюсь, но я довольно сильно застрял. Я пытаюсь отправить сеанс? .authToken в Firebase, чтобы я мог создать пользователя. Цифры выглядят очень круто, поэтому я уверен, что хочу придерживаться этого. Если это совершенно невозможно, я также очень благодарен за то, что он указал в сторону BaaS, который мог бы работать с цифрами. Заранее спасибо, и вот мой код:Как я могу аутентифицировать пользователей Digits с помощью метода Firebase Twitter в Swift?

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

«Если это абсолютно невозможно, я также очень благодарен за то, что он направлен в сторону BaaS, который сможет работать с цифрами». Рекомендации по технологии не соответствуют теме «Переполнение стека». –

+0

Спасибо. Извините за то, что в этом вопросе. – WikipediaBrown

ответ

2

Firebase не поддерживает использование Twitter Digits в качестве поставщика удостоверений.

Это означает, что единственный способ использования пользователя, прошедшего проверку подлинности в Firebase, - mint a custom token, основанный на идентификаторе цифр. Таким образом, вы даете Digits обрабатывать аутентификацию, а затем сообщать Firebase, что получилось в результате uid.

Недостатком этого подхода является то, что вы чекаете пользовательские токены, используя секрет своей Firebase. Это означает, что вы должны никогда не использовать монетных значков в клиентском приложении, так как вы передадите свой секрет кому-либо с умными глазами, чтобы посмотреть на ресурсы вашего приложения.

+0

Спасибо за быстрый ответ на это. Я решил, что мне нужно будет создать сервер, чтобы делать в основном что-либо с цифрами, но я надеялся на крыло и молитву, чтобы я мог использовать его. Знаете ли вы о каких-либо руководствах по настройке серверов для этого в AWS? Практически нет документации о том, как сделать что-то в AWS, если вы только начинаете. – WikipediaBrown

+0

«Знаете ли вы о каких-либо руководствах по настройке серверов для этого в AWS?» То же, что и раньше, этот тип вопроса не относится к теме при переполнении стека. Но я вполне уверен, что несколько хорошо ориентированных поисков Google окажут массу соответствующих результатов. –