Pregunta

Quiero implementar algo similar a lo que Digg ha hecho.

Cuando el usuario inicia sesión por primera vez, quiero forzarlo a crear una cuenta en mi sitio.

Más importante aún Quiero saber cómo iniciar sesión un usuario en mi sitio cuando inician sesión con Facebook Connect. Si inician sesión con Facebook Connect, todavía no me han proporcionado la contraseña de su cuenta en mi sitio, por lo que no puedo usar el nombre de usuario / contraseña para iniciar sesión en mi sitio. ¿Cómo hacen esto en Digg o sitios similares a este?

¿Fue útil?

Solución

El flujo del proceso de Facebook definitivamente puede ser un poco confuso. Retroceda los detalles y la API, y observe el flujo general aquí:

Facebook Connect le dirá que un usuario ha iniciado sesión en Facebook y le dará su ID de Facebook. Puede validar esa ID con Facebook mediante Facebook Connect para asegurarse de que se haya iniciado sesión correctamente. Una vez hecho esto, no necesita un nombre de usuario y contraseña . Siempre y cuando confíes en que Facebook ha autenticado a la persona correctamente, son los únicos que pueden ingresar a tu sitio usando esa identificación de Facebook. Esa es información suficiente para iniciar una sesión autenticada basada en una cuenta local asociada con esa ID.

El proceso que debe seguir es el siguiente:

  1. El usuario inicia sesión en su sitio con Facebook Connect por primera vez
    • Observa que no tiene una cuenta local asociada con ese ID de Facebook y solicíteles que ingrese la información de la cuenta local
    • Guarda esa información junto con su ID de Facebook
    • La próxima vez que vea esa ID de Facebook (y valide que es ha iniciado sesión en Facebook usando el API de Facebook), puede iniciar un sesión local utilizando el asociado cuenta.

Básicamente terminas con dos métodos separados de autenticación: una verificación de ID de Facebook Connect o el inicio de sesión de nombre de usuario / contraseña regular en tu sitio. Cualquiera de los dos debería tener el resultado final de iniciar una sesión autenticada local.

Espero que eso ayude.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top