2016-09-23 110 views
0

我正在使用此代码使用Facebook将用户登录到我的应用程序。我在后端使用Firebase,并且使用Swift 2.3检查Facebook用户是否使用Swift和Firebase登录

现在,我启动应用程序的每个人都希望能够使用他的Facebook凭据自动登录用户(除非用户明确注销)。似乎无法找到一种方法来做到这一点?感谢您提前帮忙。

此外,为了确保正确理解这一点,当我使用Firebase并启用Facebook登录方法时,我不必处理存储的密码,也不必将其移动到新帐户,并提供来自Facebook的详细信息,正确吗?我可以让他们用自己的Facebook凭证进行登录,而不是从Facebook担心的凭证等,因为我得到他们的信息(姓名等)...

let credential = FIRFacebookAuthProvider.credentialWithAccessToken(FBSDKAccessToken.currentAccessToken().tokenString) 
       let prevUser = FIRAuth.auth()?.currentUser 
       FIRAuth.auth()?.signInWithCredential(credential) { (user, error) in 


        if let user = FIRAuth.auth()?.currentUser { 
         let name = user.displayName 
         let email = user.email! 

回答

0

火力地堡不控制(或关心) Facebook身份验证状态。通过Facebook进行身份验证只会验证您的身份,然后用于创建Firebase凭据(使用signInWithCredential)。

因此,您无法以这种方式管理,过期,续订或维护Facebook令牌(为此使用Facebook SDK)。

Firebase凭证会在访问之间自动刷新并维护。除了as the docs indicate之外,您不需要在此处进行任何操作,监控auth状态更改。

在初始加载时,addAuthStateDidChangeListener()将以当前auth状态加载 - auth creds是否仍然有效。