0

Facebook Login-Bildschirm zeigt zweimal, die erste ist die reguläre Anmeldeseite, aber die zweite sagt "Sie haben bereits autorisiert meine App-Name". Kann mir jemand sagen, was ich in meinem Code falsch mache?Facebook Login Anzeigen zweimal

Hier ist mein Login-Code:

static func createAndLogin(_ viewController: UIViewController, completion: @escaping (_ success: Bool) -> Void) { 
    let loginManager = FBSDKLoginManager() 
    loginManager.logOut() 
    loginManager.logIn(withReadPermissions: ["public_profile", "email", "user_friends"], from: viewController) { (result, error) -> Void in 
     if error != nil { 
      print("login FAILED \(error)") 
      completion(false) 
     } else if (result?.isCancelled)!{ 
      print("login is CANCELLED") 

      completion(false) 
     } else if FBSDKAccessToken.current() != nil { 

      let accessToken = FBSDKAccessToken.current().tokenString 
      let credential = FIRFacebookAuthProvider.credential(withAccessToken: accessToken!) 
      FIRAuth.auth()?.signIn(with: credential, completion: { (user, error) in 
       if error != nil { 
        print("SIGN IN WITH FIREBASE FAILED") 
        completion(false) 
       } else { 
        print("YAY LOGIN SUCCESSFULL!!!!") 
        if let mainUser = FIRAuth.auth()?.currentUser?.providerData{ 
         for profile in mainUser { 
          let providerID = profile.providerID 
          let uid = profile.uid // provider-specific UID 
          let name = profile.displayName 
          let email = profile.email 
          let photoUrl = profile.photoURL 
          if (FBSDKAccessToken.current() != nil) { 
           let facebookRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, gender, first_name, last_name, middle_name, picture"]) 

           facebookRequest?.start(completionHandler: { (connection, result, error) in 

            if error == nil { 
             print(result as Any) 
             let data = result as! NSDictionary 
             let gender = data.object(forKey: "gender") as! String 

             var newUser = User(firstName: name!, profileImageURL: ("\(photoUrl!)"), gender: gender) 
             newUser.save() 
             self.currentUserID = uid 

            } 
           }) 
          } 
          completion(true) 

         } 

        } 
       } 
      }) 

     } 

    } 

} 
+1

Dies ist das Standardverhalten für die Facebook-Anmeldung. Das ist kein Problem. –

+0

Ich habe es herausgefunden, ich habe das Login zweimal aufgerufen, sowohl in viewdidload() als auch in der Login IBAction. – YB88

Antwort

0

, die mit dem Standard-Login-Verhalten zu erwarten. Sie können versuchen, loginManager.loginBehavior = .systemAccount für eine reibungslosere Login-Erfahrung zu setzen. Das wird versuchen, sich mit den FB-Zugangsdaten einzuloggen, die du in den Einstellungen für Apple angegeben hast. Wenn der Benutzer in den Einstellungen nicht in den FB eingeloggt ist, greift er auf eine der anderen Methoden zurück (webivew oder FB-App).