De nombreux sites Web modernes permettent aux utilisateurs de se connecter via leurs comptes de réseaux sociaux. Par exemple, la communauté SitePoint permet aux utilisateurs de se connecter avec leurs comptes Facebook, Twitter, Google, Yahoo ou GitHub sans s'inscrire à un nouveau compte.
Ce tutoriel introduira Hybridauth - une bibliothèque PHP qui simplifie la construction de capacités de connexion sociales.
Hybridauth agit comme une API abstraite entre les applications et diverses API sociaux et fournisseurs d'identité.
Points clés
- HybridUuth est une bibliothèque PHP conçue pour simplifier l'intégration de la connexion sociale dans votre site Web et agir comme la couche intermédiaire entre votre application et diverses API sociaux.
- Il est recommandé d'installer HybridAuth via Composer, et des informations d'identification spécifiques sont nécessaires pour chaque réseau social tel que Facebook, Google et Twitter pour fonctionner correctement.
- Cette bibliothèque utilise OAuth pour un accès sécurisé, garantissant que les informations d'identification des utilisateurs sont protégées lors de l'authentification.
- HybridUuth permet des processus d'authentification des utilisateurs personnalisés, ne s'appuyant pas sur des e-mails ou des noms d'utilisateur, mais en utilisant des identifiants uniques fournis par les réseaux sociaux.
- Ce didacticiel fournit une démonstration pratique à l'aide du framework Slim PHP, détaillant les étapes de la mise en place d'un environnement à la rédaction d'une application de démonstration entièrement traduite qui gère l'enregistrement, la connexion et la déconnexion des utilisateurs via un réseau social.
Installation
Le compositeur est recommandé pour installer Hybridauth. Nous utiliserons également Slim comme base de l'échantillon d'application.
<code>{ "require": { "slim/slim": "2.*", "hybridauth/hybridauth": "2.3.0" } }</code>
Connexion sociale avec hybriduth
Pour utiliser HybridAuth, copiez le dossier /vendor/hybridauth/hybridauth/hybridauth
et config.php
(fichiers de points de terminaison hybriduth) dans le dossier index.php
dans votre dossier racine de projet.
Renommer le fichier index.php
à hybrid.php
car index.php
sera utilisé par le framework Slim pour notre logique d'application de démonstration.
Remplissez le fichier config.php
avec votre application (par exemple Facebook, application Twitter).
Par exemple, si vous souhaitez que les utilisateurs se connectent à votre site Web via Facebook, Google et Twitter; votre profil devrait ressembler à ceci. Mon URL d'application est http://slim.local
.
<code>return [ "base_url" => "http://slim.local/", "providers" => [ "Google" => [ "enabled" => true, "keys" => [ "id" => "", "secret" => "" ], ], "Facebook" => [ "enabled" => true, "keys" => [ "id" => "", "secret" => "" ], "trustForwarded" => false ], "Twitter" => [ "enabled" => true, "keys" => [ "key" => "", "secret" => "" ] ], ], "debug_mode" => true, "debug_file" => "bug.txt", ];</code>
Remarque: le paramètre base_url
doit pointer vers le fichier de point de terminaison hybriduth, dans ce cas hybrid.php
.
Reportez-vous à la documentation de configuration Hybriduth pour plus d'informations.
Ensuite, chargez le fournisseur automatique du fournisseur et instanciez la classe.
<code>require 'vendor/autoload.php'; $hybridauth = new Hybrid_Auth( 'config.php' );</code>
Utilisez la méthode authenticate
pour authentifier l'utilisateur à l'aide du fournisseur donné.
pour Facebook:
<code>$adapter = $hybridauth->authenticate( "Facebook" );</code>
pour Twitter:
<code>$adapter = $hybridauth->authenticate( "Twitter" );</code>
pour google:
<code>$adapter = $hybridauth->authenticate( "Google" );</code>Les paramètres transmis à
doivent correspondre à la touche de tableau du fournisseur dans le fichier authenticate()
. config.php
Après l'authentification, utilisez la méthode
pour récupérer les données de profil de l'utilisateur. getUserProfile()
<code>{ "require": { "slim/slim": "2.*", "hybridauth/hybridauth": "2.3.0" } }</code>
sera un objet qui contient les données de profil utilisateur renvoyé. $user_profile
Pour ajouter plus de fournisseurs, tels que GitHub, copiez le fichier
de GitHub.php
à un emplacement dans l'application (dans ce cas, le répertoire du fournisseur). Chargez le fichier à l'aide d'un wrapper de fournisseur, où vendor/hybridauth/hybridauth/additional-providers/hybridauth-github/Providers
est le chemin d'accès au fichier github et path
est le nom de sa classe PHP. class
<code>return [ "base_url" => "http://slim.local/", "providers" => [ "Google" => [ "enabled" => true, "keys" => [ "id" => "", "secret" => "" ], ], "Facebook" => [ "enabled" => true, "keys" => [ "id" => "", "secret" => "" ], "trustForwarded" => false ], "Twitter" => [ "enabled" => true, "keys" => [ "key" => "", "secret" => "" ] ], ], "debug_mode" => true, "debug_file" => "bug.txt", ];</code>Utilisez la méthode
d'hybriduth pour authentifier les utilisateurs à l'aide de github, comme indiqué ci-dessous: authenticate()
<code>require 'vendor/autoload.php'; $hybridauth = new Hybrid_Auth( 'config.php' );</code>
Implémentation de la connexion sociale
Habituellement, chaque site Web avec un système de connexion et d'enregistrement utilise l'adresse e-mail ou le nom d'utilisateur de l'utilisateur pour identifier et se connecter à son compte. Si vous prévoyez d'implémenter la connexion sociale, il est recommandé de ne pas utiliser le nom d'utilisateur ou l'e-mail de l'utilisateur pour l'authentification.L'une des raisons de s'opposer à cette pratique est que, par exemple, Twitter ne renvoie pas l'adresse e-mail de l'utilisateur qui a été authentifiée à travers elle. Autrement dit, les données de profil renvoyées ne contiennent pas l'e-mail de l'utilisateur.
La plupart, sinon la totalité, des fournisseurs sociaux, tels que Facebook, Twitter, Google, LinkedIn et même GitHub, renvoient un numéro d'identification utilisateur unique après autorisation.
Ne vous connectez pas au compte de l'utilisateur à l'aide de l'e-mail de l'utilisateur, mais utilisez l'identifiant renvoyé par le fournisseur social, comme indiqué ci-dessous: Créez un compte d'utilisateur si l'utilisateur n'a pas de compte; le compte allez sur le site Web.
Écriture d'une application de démonstration
Nous utiliserons le framework Slim PHP pour créer une application Web simple pour démontrer des exemples pratiques de la façon de mettre en œuvre une connexion sociale à l'aide de HybridAuth.Je suppose que vous avez installé des cadres hybridauth et minces. Sinon, reportez-vous au guide d'installation ci-dessus.
Structure d'application
<code>$adapter = $hybridauth->authenticate( "Facebook" );</code>Il s'agit du SQL de la table de base de données.
<code>$adapter = $hybridauth->authenticate( "Twitter" );</code>Rédaction d'un modèle d'application
Tout le code du modèle d'application doit être placé dans le fichier app_model.php dans le dossier SRC.
L'espace de noms de fichiers est un modèle, suivi de la définition et du constructeur de classe.
<code>$adapter = $hybridauth->authenticate( "Google" );</code>
La méthode renvoie true si l'identifiant (numéro d'identification utilisateur) existe déjà dans la base de données, sinon renvoie false. identifier_exists
<code>$user_profile = $adapter->getUserProfile();</code>
Méthode Insérez les données de profil utilisateur dans la base de données. register_user
<code>"Github" => [ "enabled" => true, "keys" => [ "id" => "", "secret" => "" ], "wrapper" => [ "path" => "providers/GitHub.php", "class" => "Hybrid_Providers_GitHub" ] ]</code>
ajoute la session d'utilisateur créée à la session Hybriduth lorsqu'elle est appelée (créée après que le fournisseur autorise avec succès l'utilisateur). login_user
<code>$adapter = $hybridauth->authenticate( "Github" );</code>
Méthode Supprimer ou détruire la session d'un utilisateur lorsque vous cliquez sur le lien de déconnexion. logout_user
<code>|-scr/ |----App_Model.php |-templates/ |----login.php |----welcome.php |-vendor/ |-composer.json |-config.php |-hybrid.php |-index.php |-.htaccess</code>Enfin, la méthode Getter renvoie le nom, l'e-mail et l'URL de l'avatar de l'utilisateur.
<code>{ "require": { "slim/slim": "2.*", "hybridauth/hybridauth": "2.3.0" } }</code>
Enregistrez Autoloader PSR-4 pour la classe de modèle en ajoutant le code suivant à votre fichier composer.json.
<code>return [ "base_url" => "http://slim.local/", "providers" => [ "Google" => [ "enabled" => true, "keys" => [ "id" => "", "secret" => "" ], ], "Facebook" => [ "enabled" => true, "keys" => [ "id" => "", "secret" => "" ], "trustForwarded" => false ], "Twitter" => [ "enabled" => true, "keys" => [ "key" => "", "secret" => "" ] ], ], "debug_mode" => true, "debug_file" => "bug.txt", ];</code>
Exécutez composer dump-autoload
pour régénérer le fichier vendor/autoload.php
.
Logique d'application
Chargez le compositeur dans l'application index.php
Le fichier charge automatiquement le fichier et instancie SLIM.
<code>require 'vendor/autoload.php'; $hybridauth = new Hybrid_Auth( 'config.php' );</code>
Créez un répertoire appelé modèles pour stocker tous les fichiers de modèles, puis enregistrez-le ou configurez-le dans Slim comme suit:
<code>$adapter = $hybridauth->authenticate( "Facebook" );</code>
Créez une ressource Slim Database Singleton qui renverra l'instance de connexion de la base de données lorsque vous appelez.
<code>$adapter = $hybridauth->authenticate( "Twitter" );</code>
Une autre ressource singleton qui renvoie une instance Hybriduth est également créée.
<code>$adapter = $hybridauth->authenticate( "Google" );</code>
Instancier la classe du modèle d'application en passant une connexion de base de données en tant que paramètre.
<code>$user_profile = $adapter->getUserProfile();</code>
La fonction authenticate
suivante lorsqu'elle est ajoutée comme paramètre à l'itinéraire, si l'utilisateur n'est pas connecté, il le redirigera vers la page de connexion.
<code>"Github" => [ "enabled" => true, "keys" => [ "id" => "", "secret" => "" ], "wrapper" => [ "path" => "providers/GitHub.php", "class" => "Hybrid_Providers_GitHub" ] ]</code>
redirige l'utilisateur déconnecté vers la page de connexion lorsqu'il accède à la page d'accueil ou à la page d'index de l'application.
<code>$adapter = $hybridauth->authenticate( "Github" );</code>
Ce qui suit est la définition de routage des liens de connexion sociale. Autrement dit, lorsque le lien http://slim.local/login/facebook
est cliqué, Hybriduth redirige l'utilisateur vers Facebook pour l'autorisation. Il en va de même pour Twitter http://slim.local/login/twitter
, Google http://slim.local/login/google
et tous les autres fournisseurs pris en charge.
<code>|-scr/ |----App_Model.php |-templates/ |----login.php |----welcome.php |-vendor/ |-composer.json |-config.php |-hybrid.php |-index.php |-.htaccess</code>
Appeler la méthode authenticate()
d'hybriduth redirige l'utilisateur vers le fournisseur social donné.
Après une autorisation réussie, la variable $user_profile
remplira les données de profil utilisateur.
Appelez la méthode identifier_exists()
pour vérifier si l'identifiant utilisateur existe dans la base de données. Si c'est vrai, l'utilisateur se connecte au site Web. Sinon, un compte est créé pour l'utilisateur et l'utilisateur est connecté.
Il s'agit du code pour déconnecter l'itinéraire.
CREATE TABLE IF NOT EXISTS `users` ( `id` int(10) NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), `identifier` varchar(50) NOT NULL, UNIQUE KEY `identifier` (`identifier`), `email` varchar(50) DEFAULT NULL, `first_name` varchar(20) DEFAULT NULL, `last_name` varchar(20) DEFAULT NULL, `avatar_url` varchar(255) ) ENGINE=InnoDB;
La méthode logout_user
dont nous avons discuté dans la classe de modèle est appelée pour détruire la session utilisateur, ainsi que pour vous déconnecter du fournisseur de connexion de l'utilisateur. Hybrid_Auth::logoutAllProviders()
<?php namespace Model; class App_Model { /** @var object Database connection */ private $conn; /** * Instantiate the model class. * * @param object $db_connection DB connection */ public function __construct(\PDO $db_connection) { $this->conn = $db_connection; } // ... rest of the methods ... }Enfin, exécutez l'application mince.
/** * Check if a HybridAuth identifier already exists in DB * * @param int $identifier * * @return bool */ public function identifier_exists($identifier) { try { $sql = 'SELECT identifier FROM users'; $query = $this->conn->query($sql); $result = $query->fetchAll(\PDO::FETCH_COLUMN, 0); return in_array($identifier, $result); } catch ( \PDOException $e ) { die( $e->getMessage() ); } }Voir le référentiel GitHub de l'application pour le code source complet.
Conclusion
Dans cet article, nous avons appris à intégrer les capacités de connexion sociale aux sites Web en utilisant la bibliothèque PHP Hybriduth puissante et robuste.Si vous avez des questions ou des contributions, veuillez nous en informer dans les commentaires.
FAQ (FAQ) pour la connexion sociale avec PHP et hybriduth
Qu'est-ce que Hybridauth et comment est-il utilisé avec PHP pour la connexion sociale?
HybridUuth est une bibliothèque PHP de connexion sociale open source populaire. Il permet aux développeurs Web de créer facilement des applications sociales en fournissant un moyen facile d'authentifier les utilisateurs via leurs comptes de médias sociaux. Hybridauth agit comme une API abstraite entre les applications et diverses API sociaux et fournisseurs d'identité tels que Facebook, Twitter et Google. Il fonctionne en s'intégrant aux systèmes de connexion existants dans les applications PHP et en ajoutant des capacités de connexion sociales.
Comment installer et configurer Hybriduth dans mon application PHP?
hybriduth peut être installé via le compositeur (l'outil de gestion de la dépendance en PHP). Après l'installation, vous devez le configurer en configurant le fournisseur que vous souhaitez utiliser (réseau social). Chaque fournisseur nécessite un ensemble unique de paramètres, tels que les clés et les clés, que vous pouvez obtenir en créant des applications sur les plateformes de développeur de chaque réseau social.
Quel est le niveau de sécurité de l'hybridauth pour la connexion sociale?
HybridUuth est très sécurisé car il utilise OAuth, une norme de délégué en libre accès. OAuth fournit un accès désigné sécurisé, ce qui signifie que les utilisateurs peuvent accorder la permission des sites Web pour accéder à leurs informations sur d'autres sites Web sans leur fournir un mot de passe. Cela fait de Hybridauth une option sécurisée pour la connexion sociale.
Puis-je utiliser HybridAuth pour la connexion sociale sur plusieurs sites Web?
Oui, Hybridauth peut être utilisé sur plusieurs sites Web. Il vous suffit d'utiliser la bibliothèque de configuration d'URL de rappel correcte pour chaque site Web. Cela en fait une solution flexible pour les développeurs qui gèrent plusieurs sites Web.
Comment gérer les erreurs dans Hybridauth?
HybridUuth a un système de gestion des erreurs intégré. Lorsqu'une erreur se produit, elle lance une exception que vous pouvez attraper et gérer en fonction de la stratégie de gestion des erreurs de votre application. Cela facilite le débogage et la résolution des problèmes.
Puis-je personnaliser le look et le style du bouton de connexion sociale de Hybridauth?
Oui, vous pouvez personnaliser l'apparence et le style du bouton de connexion sociale. Hybridauth offre des capacités de connexion sociales, mais la conception et la disposition des boutons sont entièrement à vous.
Comment mettre à jour la bibliothèque Hybridauth dans mon application PHP?
La mise à jour de l'hybriduth est aussi simple que d'exécuter une commande dans Composer. Cela garantit que vous avez toujours la dernière version avec tous les correctifs et mises à jour de sécurité.
Puis-je utiliser HybridAuth avec d'autres cadres PHP?
Oui, Hybriduth n'est pas un cadre et peut être utilisé avec n'importe quel cadre PHP. Cela en fait un choix polyvalent pour les développeurs utilisant différents cadres PHP.
Comment tester la connexion sociale de Hybridauth dans mon environnement de développement local?
Tester la connexion sociale localement peut être délicat car les réseaux sociaux nécessitent des URL de rappel valides. Cependant, vous pouvez exposer votre serveur local à Internet à l'aide d'outils tels que NGROK et utiliser cette URL comme URL de rappel.
Puis-je authentifier les utilisateurs avec des comptes non sociaux tels que les e-mails et les mots de passe à l'aide de Hybriduth?
Non, Hybridauth est conçu pour la connexion sociale. Pour l'authentification traditionnelle des e-mails et des mots de passe, vous devez utiliser d'autres bibliothèques PHP ou créer votre propre système d'authentification.
La sortie maintient la mise en forme et le placement d'image d'origine.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

PhpSessionsCanstorestrings, Numbers, Arrays, Andobject.1.Strings: TextDatalikeUserames.2.Numbers: IntegersorFloatsForCounters.3.arrays: listslikeshoppingcarts.4.Objects: complexestructuresthataReSerialized.

TostartaphpSession, usessession_start () aTTheScript'sbeginning.1) PlaceItBeForeanyOutputToSetTheSessionCooKie.2) USESSIONSFORUSERDATALIKELOGINSTATUSORSHOPPINGSCARS.3) RegegeraSesessionIdStopreventfixationAtTACKS.4)

La régénération de session fait référence à la génération d'un nouvel ID de session et à l'invalidation de l'ancien ID lorsque l'utilisateur effectue des opérations sensibles en cas d'attaques fixes de session. Les étapes de mise en œuvre incluent: 1. Détectez les opérations sensibles, 2. Générer un nouvel ID de session, 3. Détruiser l'ancien ID de session, 4. Mettre à jour les informations de session côté utilisateur.

Les séances PHP ont un impact significatif sur les performances des applications. Les méthodes d'optimisation incluent: 1. Utilisez une base de données pour stocker les données de session pour améliorer la vitesse de réponse; 2. Réduire l'utilisation des données de session et stocker uniquement les informations nécessaires; 3. Utilisez un processeur de session non bloquant pour améliorer les capacités de concurrence; 4. Ajustez le temps d'expiration de la session pour équilibrer l'expérience utilisateur et la charge du serveur; 5. Utilisez des séances persistantes pour réduire le nombre de données de lecture et d'écriture.

PhpsessionsareServer-côté, whileCookiesareclient-Side.1) SessionStoredataontheServer, aremoresecure, ethandleLargerData.2) CookiesstoredataontheClient, ArelessSecure, andlimitedIzeSize.USESESSIONSFORSENSEDATAANDCOOKIESFORNONNORNE-SENSENSITION, Client-Sidedata.

Phpidentifiesauser'sessionusingssse cookiesand sessionids.1) whenSession_start () est calculé, phpgeneratesauquesseSessionIdStoredInacookIenameDPhpSesssIdonUser'sbrowser.2) thisIdallowsphptoreTrrieSeSessionDatafromTeserver.

La sécurité des sessions PHP peut être obtenue grâce aux mesures suivantes: 1. Utilisez Session_RegeReate_ID () pour régénérer l'ID de session lorsque l'utilisateur se connecte ou est une opération importante. 2. Cryptez l'ID de session de transmission via le protocole HTTPS. 3. Utilisez session_save_path () pour spécifier le répertoire sécurisé pour stocker les données de session et définir correctement les autorisations.

PhpSessionFilesArestorentheDirectorySpecifiedSession.save_path, généralement / tmponunix-likesystemsorc: \ windows \ temponwindows.tocustomzethis: 1) usession_save_path () tosetacustomDirectory, astumeit'swrit


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

VSCode Windows 64 bits Télécharger
Un éditeur IDE gratuit et puissant lancé par Microsoft

Dreamweaver CS6
Outils de développement Web visuel

Dreamweaver Mac
Outils de développement Web visuel

SublimeText3 Linux nouvelle version
Dernière version de SublimeText3 Linux
