2012-05-03 14 views
9

Resumen de la pregunta:
Me gustaría crear un sistema de registro e inicio de sesión basado en CakePHP que ofrezca múltiples entradas diferentes como OpenID, Facebook, Twitter, etc. Me gustaría que el sistema permita que un usuario asocie múltiples formas de identificación con su cuenta.¿Integra de manera limpia el inicio de sesión de Facebook, Google, Twitter, etc. en CakePHP?

Después de mucha búsqueda, aparece un espacio en blanco en cualquier cosa que permita más de un método de autorización. El sistema de autorización de Cake complica el asunto, por lo que utilizar un tutorial para PHP general no es realmente efectivo. ¿Alguien tiene una solución, o en algún lugar donde pueda empezar?

Ejemplo:
Para dar un ejemplo sencillo, mirando a la red StackExchange: se puede conectar/registrarse con una cuenta de cambio de pila, Google, Yahoo, Facebook, o OpenID. Una vez que haya iniciado sesión, puede agregar más de estos métodos a su cuenta para que lo reconozcan de múltiples maneras. Me doy cuenta de que StackExchange probablemente no está escrito en Cake, pero sirve como ejemplo.

¡Gracias!



pregunta original

Aquí está la primicia: Me gustaría integrar un sistema de registro/login simple para cada uno de los principales servicios que ofrecen oauth/openid en CakePHP.

Básicamente, me gustaría que mis usuarios puedan registrar la forma antigua (incluido el correo electrónico de validación) o usar un servicio existente para verificar ellos mismos. Me gustaría que puedan iniciar sesión después usando ese servicio o con un nombre de usuario y contraseña.

Ahora, he encontrado complementos extremadamente a fondo para la integración completa de Facebook y similares, pero la conclusión es que quiero utilizar esto para el registro y el inicio de sesión en este momento, y me gustaría que la experiencia sea la lo mismo independientemente del servicio que elijan (además, me gustaría entender cómo funciona ... porque esto se trata de aprender CakePHP después de todo).

También me gustaría que puedan vincular otros servicios una vez que se crea la cuenta, si así lo desean. En pocas palabras, la cuenta debería poder vincularse a cualquier número de servicios de inicio de sesión, o ninguno.

¿Cómo puedo hacerlo?

Gracias,

James

+0

He añadido un ejemplo ... Irónicamente, estaba luchando por pensar en uno para el último día, mientras comprobaba regularmente el sitio. Lo más lejos que he llegado hasta ahora son algunos viejos tutoriales de Facebook que no parecen coincidir con el nuevo gráfico o pastel, por lo que cualquier material más actual sería un gran comienzo. – xtraorange

Respuesta

2

Parece que ahora hay una biblioteca de terceros disponibles usando Opauth lo más detallada en this bakery thread

Aquí está la versión de CakePHP página de gitHub:

https://github.com/uzyn/cakephp-opauth

+1

Me gustaría hacer hincapié en que, al momento de escribir, opauth está mal escrito, implementa incumplimientos inseguros y no inspira confianza desde una serie de perspectivas. – markus

+0

No soy el autor de Opauth, pero ¿puede dar más detalles sobre su comentario al proporcionar ejemplos específicos? – AngeloS

+0

Míralo y mira los problemas, es obvio. Un ejemplo es ssl verify peer = false. – markus

2

Gran pregunta - nuestro estudio de desarrollo CakePHP puede mirar esto en los próximos meses también. Sospecho que tendrás más suerte investigando esto como una pregunta general de PHP y luego cómo puedes convertir esa solución en Cake. Definitivamente publique de vuelta con todo lo que descubra.

Usted puede encontrar este hilo un punto de partida útil, a pesar de que fue publicada en el 2010:

Cuestiones relacionadas