2017-07-15 31 views
0

我想检查Facebook的第一次登录,所以我可以给出2个选项: 1.如果它是第一次登录发送验证步骤2他们需要添加额外的细节。 2.选项2,如果用户使用Facebook登录已经被发送到主页。如何在swift中查看与Facebook的首次登录?

我正在使用firebase,我知道如何让他们登录,但这部分我无法弄清楚。我使用这个功能可以正常工作,它只是部分与它们发送到正确的viewController,让我的麻烦:

func loginWithFacebookAction() { 
    print("Login with Facebook clicked") 

    FBSDKLoginManager().logIn(withReadPermissions: ["public_profile", "email", "user_friends"], from: self) { (result, err) in 
     if err != nil { 
      print("FB login failed", err as Any) 
     } else if (result?.isCancelled)! { 
      print("The user cancelled loggin in") 
      self.segueProgramaticWithPresent(viewController: LoginController()) 
     } else { 

      if (FBSDKAccessToken.current() != nil) { 
       print("Go to main page") 
       self.facebookRequestUserDetails() 
       self.segueToAnotherView(storyboard: "Main", identifier: "SWRevealViewController") 
      } else { 
       print("Go to Step 2 - add more details") 
       self.segueProgramaticWithPresent(viewController: CreateAccountST2()) 
      } 

     } 

我使用FacebokToken检查,但由于用户点击按钮,它会总是回归真实。

回答

0
  1. 将注册Facebook用户的facebook_id存储在 服务器端数据库中。
  2. 然后,当用户登录成功与Facebook,你会得到 的的access_token与FBSDKAccessToken.current()并将其发送到 你的服务器端API,
  3. 在服务器端请求的图形API与access_token和 GET facebookuser_id

    https://graph.facebook.com/me?access_token= {accesstoken}哪个 只返回一个包含id字段的json。

  4. 当您得到facebookuser_id时,您可以检查数据库中是否存在用户 。
  5. 如果不存在,创建一个新用户,并响应与 说:“嘿,这是一个新的用户,所以你应该从 获得额外的细节他/她”
  6. 如果已经存在返回的用户代码。