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!

En PHP, le trait convient aux situations où la réutilisation de la méthode est requise mais ne convient pas à l'héritage. 1) Le trait permet aux méthodes de multiplexage des classes pour éviter une complexité de succession multiple. 2) Lorsque vous utilisez un trait, vous devez faire attention aux conflits de méthode, qui peuvent être résolus par l'alternative et comme mots clés. 3) La surutilisation du trait doit être évitée et sa responsabilité unique doit être maintenue pour optimiser les performances et améliorer la maintenabilité du code.

Le conteneur d'injection de dépendance (DIC) est un outil qui gère et fournit des dépendances d'objets à utiliser dans les projets PHP. Les principaux avantages du DIC comprennent: 1. Le découplage, rendre les composants indépendants, et le code est facile à entretenir et à tester; 2. Flexibilité, facile à remplacer ou à modifier les dépendances; 3. Testabilité, pratique pour injecter des objets simulés pour les tests unitaires.

SPLFixedArray est un tableau de taille fixe en PHP, adapté aux scénarios où des performances élevées et une faible utilisation de la mémoire sont nécessaires. 1) Il doit spécifier la taille lors de la création pour éviter les frais généraux causés par un ajustement dynamique. 2) Sur la base du tableau de langue C, fonctionne directement de la mémoire et de la vitesse d'accès rapide. 3) Convient pour le traitement des données à grande échelle et les environnements sensibles à la mémoire, mais il doit être utilisé avec prudence car sa taille est fixe.

PHP gère les téléchargements de fichiers via la variable de fichiers $ \ _. Les méthodes pour garantir la sécurité incluent: 1. Vérifiez les erreurs de téléchargement, 2. Vérifiez le type et la taille du fichier, 3. Empêchez l'écrasement des fichiers, 4. Déplacez les fichiers vers un emplacement de stockage permanent.

Dans JavaScript, vous pouvez utiliser nullcoalescingoperator (??) et nullcoalescingAssIgnmentOperator (?? =). 1.? 2.?? Ces opérateurs simplifient la logique du code, améliorent la lisibilité et les performances.

Le CSP est important car il peut empêcher les attaques XSS et limiter le chargement des ressources, améliorer la sécurité du site Web. 1.CSP fait partie des en-têtes de réponse HTTP, limitant les comportements malveillants grâce à des politiques strictes. 2. L'utilisation de base consiste à permettre le chargement de ressources de la même origine. 3. L'utilisation avancée peut définir des stratégies plus fins, telles que les noms de domaine spécifiques pour charger des scripts et des styles. 4. Utilisez un en-tête de contenu-sécurité-politique-report-seul pour déboguer et optimiser les politiques CSP.

Les méthodes de demande HTTP incluent GET, Publier, Put and Delete, qui sont utilisées pour obtenir, soumettre, mettre à jour et supprimer respectivement les ressources respectivement. 1. La méthode GET est utilisée pour obtenir des ressources et convient aux opérations de lecture. 2. La méthode post-post est utilisée pour soumettre des données et est souvent utilisée pour créer de nouvelles ressources. 3. La méthode de put est utilisée pour mettre à jour les ressources et convient aux mises à jour complètes. 4. La méthode de suppression est utilisée pour supprimer les ressources et convient aux opérations de suppression.

HTTPS est un protocole qui ajoute une couche de sécurité sur la base de HTTP, qui protège principalement la confidentialité des utilisateurs et la sécurité des données via des données chiffrées. Ses principes de travail comprennent la poignée de main TLS, la vérification du certificat et la communication cryptée. Lors de la mise en œuvre de HTTPS, vous devez prêter attention à la gestion des certificats, à l'impact des performances et aux problèmes de contenu mixte.


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

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

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

Dreamweaver CS6
Outils de développement Web visuel

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire

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