Connexions sociales en PHP avec hybriduth
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>
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>
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>
<code>$adapter = $hybridauth->authenticate( "Twitter" );</code>
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>
<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 ... }
/** * 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() ); } }
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!

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

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

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

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds











Dans PHP, Password_Hash et Password_verify Les fonctions doivent être utilisées pour implémenter le hachage de mot de passe sécurisé, et MD5 ou SHA1 ne doit pas être utilisé. 1) Password_hash génère un hachage contenant des valeurs de sel pour améliorer la sécurité. 2) Password_verify Vérifiez le mot de passe et assurez-vous la sécurité en comparant les valeurs de hachage. 3) MD5 et SHA1 sont vulnérables et manquent de valeurs de sel, et ne conviennent pas à la sécurité de mot de passe moderne.

PHP et Python ont chacun leurs propres avantages et choisissent en fonction des exigences du projet. 1.Php convient au développement Web, en particulier pour le développement rapide et la maintenance des sites Web. 2. Python convient à la science des données, à l'apprentissage automatique et à l'intelligence artificielle, avec syntaxe concise et adaptée aux débutants.

PHP est largement utilisé dans le commerce électronique, les systèmes de gestion de contenu et le développement d'API. 1) E-commerce: Utilisé pour la fonction de panier et le traitement des paiements. 2) Système de gestion du contenu: utilisé pour la génération de contenu dynamique et la gestion des utilisateurs. 3) Développement des API: Utilisé pour le développement de l'API RESTful et la sécurité de l'API. Grâce à l'optimisation des performances et aux meilleures pratiques, l'efficacité et la maintenabilité des applications PHP sont améliorées.

Le type PHP invite à améliorer la qualité et la lisibilité du code. 1) Conseils de type scalaire: Depuis PHP7.0, les types de données de base sont autorisés à être spécifiés dans les paramètres de fonction, tels que INT, Float, etc. 2) Invite de type de retour: Assurez la cohérence du type de valeur de retour de fonction. 3) Invite de type d'union: Depuis PHP8.0, plusieurs types peuvent être spécifiés dans les paramètres de fonction ou les valeurs de retour. 4) Invite de type nullable: permet d'inclure des valeurs nulles et de gérer les fonctions qui peuvent renvoyer les valeurs nulles.

PHP est toujours dynamique et occupe toujours une position importante dans le domaine de la programmation moderne. 1) La simplicité de PHP et le soutien communautaire puissant le rendent largement utilisé dans le développement Web; 2) sa flexibilité et sa stabilité le rendent exceptionnelle dans la gestion des formulaires Web, des opérations de base de données et du traitement de fichiers; 3) PHP évolue et optimise constamment, adapté aux débutants et aux développeurs expérimentés.

PHP est principalement la programmation procédurale, mais prend également en charge la programmation orientée objet (POO); Python prend en charge une variété de paradigmes, y compris la POO, la programmation fonctionnelle et procédurale. PHP convient au développement Web, et Python convient à une variété d'applications telles que l'analyse des données et l'apprentissage automatique.

PHP et Python ont leurs propres avantages et inconvénients, et le choix dépend des besoins du projet et des préférences personnelles. 1.Php convient au développement rapide et à la maintenance des applications Web à grande échelle. 2. Python domine le domaine de la science des données et de l'apprentissage automatique.

L'utilisation de déclarations de prétraitement et l'APD dans PHP peut effectivement empêcher les attaques d'injection SQL. 1) Utilisez PDO pour vous connecter à la base de données et définir le mode d'erreur. 2) Créez des instructions de prétraitement via la méthode de préparation et transmettez des données à l'aide des espaces réservés et exécutez des méthodes. 3) Traitez les résultats de la requête et assurez la sécurité et les performances du code.
