tagsinput tag ejemplos bootstrap php mysql social

php - ejemplos - tagsinput get value



Estructura de la base de datos para la implementación de inicio de sesión social? (2)

Le sugiero que presente el concepto de un AuthenticationProvider de AuthenticationProvider :

CREATE TABLE IF NOT EXISTS `AuthenticationProvider` ( `ProviderKey` varchar(128) NOT NULL, `userId` int(10) unsigned NOT NULL, `ProviderType` enum(''facebook'',''twitter'', ''google'') NOT NULL, PRIMARY KEY (`ProviderKey`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Cada proveedor de inicio de sesión proporciona una clave única para el usuario. Esto se almacena en ProviderKey . ProviderType contiene información sobre el proveedor de inicio de sesión al que pertenece ProviderKey y, finalmente, la columna userId la información con la tabla de users . Entonces, cuando recibe un inicio de sesión exitoso de uno de los proveedores de inicio de sesión, encuentra el ProviderKey correspondiente en la tabla y usa la cookie de autenticación para el usuario en cuestión.

No estoy seguro de que quieras que ProviderType sea ​​una enum . Probablemente sería más correcto hacer otra tabla que pueda contener estos.

Cuando un usuario se registra por primera vez en su sitio e inicia sesión a través de Facebook, por ejemplo, tendrá que crear una fila en la tabla de users . Sin embargo, no habrá password , activation_key y resetpassword_key involucradas. Por lo tanto, es posible que desee mover esos campos a una tabla separada, de modo que su tabla de users solo contenga los datos centrales del usuario, y no haya datos que solo sean relevantes para un solo mecanismo de inicio de sesión (nombre de usuario / contraseña).

Espero que esto tenga sentido y que te apunte en la dirección correcta.

/ Klaus

En mi aplicación, tengo una tabla de "usuarios" que tiene la siguiente estructura.

CREATE TABLE IF NOT EXISTS `users` ( `userId` int(10) unsigned NOT NULL auto_increment, `username` varchar(128) NOT NULL default '''', `password` varchar(32) NOT NULL default '''', `email` text NOT NULL, `newsletter` tinyint(1) NOT NULL default ''0'', `banned` enum(''yes'',''no'') NOT NULL default ''no'', `admin` enum(''yes'',''no'') NOT NULL default ''no'', `signup_ip` varchar(20) NOT NULL default '''', `activation_key` varchar(60) NOT NULL default '''', `resetpassword_key` varchar(60) NOT NULL default '''', `createdon` datetime NOT NULL default ''0000-00-00 00:00:00'', PRIMARY KEY (`userId`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=27 ;

Quiero implementar el inicio de sesión social a través de Facebook, Twitter y OpenID en mi aplicación, tal como lo hizo StatckOverflow. Por favor, sugiérame todos los cambios que requeriré en mi base de datos y cómo se implementará la lógica en PHP, junto con la facilidad de inicio de sesión existente.

¡Gracias!