Parse.com ¿Es posible iniciar session usando Facebook mientras se comtesting si el correo electrónico del usuario de Facebook existe en un usuario en el análisis sintáctico y si lo hace enlazando ambos?

Tengo el siguiente problema con el iOS SDK de Parse. En mi aplicación, los usuarios pueden iniciar session usando correo electrónico (nombre de usuario) / contraseña o Facebook. Cuando usan Facebook, el correo electrónico (nombre de usuario) se establece automáticamente. Pero si el usuario inicia session usando correo electrónico / contraseña primero y después de cerrar session trata de iniciar session usando Facebook obtienen una count duplicada. Mi objective en este escenario es vincular Facebook a la count anterior. ¿Hay alguna forma de comprobar si existe el correo electrónico potencial del nuevo usuario en la database de Parse antes de crear una nueva count y, si existe, vincular ambas counts? De esta forma, el usuario no tiene que recordar si usaron Facebook o correo electrónico, podrían usar ambos sin problemas.

Gracias.

La lógica básica que necesita aquí es la siguiente:

  1. Autenticar al usuario usando Facebook
  2. Obtenga la información adicional que necesita, por ejemplo, lea el correo electrónico desde la API gráfica de Facebook, o (en mi caso) solicite al usuario un número de teléfono (que no puede get de Facebook)
  3. Busque en la tabla de usuarios de Parse una count que coincida con esta información (dirección de correo electrónico, número de teléfono, etc.)
  4. Si se encuentra una coincidencia y el usuario se ha autenticado con esta identidad * , vincula las counts e inicia session con el usuario.
  5. Si no se encuentra una coincidencia, cree una nueva count de Parse para el usuario, utilizando la identidad del correo electrónico / teléfono

Se describe con más detalle aquí: fusionar un usuario registrado por Facebook y un usuario que ya se ha registrado por correo electrónico? . Hay un código JS de ejemplo pero la idea debería ser la misma para iOS.

* Preste mucha atención a lo que dice el Analizador en la última respuesta. Si un usuario de Facebook dice poseer una dirección de correo electrónico o un número de teléfono, debe verificar de forma independiente que sea el propietario de esa count (por ejemplo, enviando un enlace o código de autorización).

Puede hacer una consulta simple en la tabla Usuario para ver si un usuario ya existe con el mismo nombre de usuario. Si lo hace, querrá vincular los datos de Facebook a esta count. Sus documentos describen cómo hacerlo con el SDK: https://parse.com/docs/ios_guide#fbusers-link/iOS

Vinculará fácilmente al "usuario" con la count de Facebook.

 NSArray *permissionsArray = @[ @"user_about_me", @"user_relationships", @"user_birthday", @"user_location"]; [PFFacebookUtils linkUser:user permissions:permissionsArray block:^(BOOL succeeded, NSError *error) { //do anything }];