Comment authentifier les utilisateurs avec Twitter OAuth 2.0

Dans ce didacticiel, vous apprendrez à utiliser les API Twitter 1.1 et OAuth 2.0 pour authentifier les utilisateurs de votre application et publier un tweet de test..

Pourquoi avons-nous besoin d'un cadre d'authentification??

Pour créer des services agissant pour le compte des utilisateurs et les rendant réellement sécurisés et faciles à développer, nous avons besoin de trois choses:

  • Application Twitter
  • API REST
  • accès au compte utilisateur

Pour réunir les éléments dans un mécanisme de travail, nous avons besoin d’un cadre d’authentification. En tant que norme Twitter, l’API REST identifie les applications Twitter et les utilisateurs utilisant OAuth..

Qu'est-ce que OAuth??

Selon oauth.net, OAuth est:

Un protocole ouvert pour permettre une autorisation sécurisée selon une méthode simple et standard à partir d'applications Web, mobiles et de bureau.

OAuth est le cadre d'autorisation le plus répandu à l'heure actuelle. Il est utilisé dans la plupart des applications et services Web courants, tels que GitHub, Google, Facebook et, bien sûr, sur Twitter..

Ce cadre permet aux utilisateurs de vous accorder l’autorisation d’agir en leur nom sans partager le mot de passe du compte. Une fois que l'utilisateur a donné sa permission, OAuth vous renverra un jeton. Ce jeton lui-même autorise l'accès pour effectuer des demandes au nom de l'utilisateur..

Les jetons de Twitter n'ont pas de date d'expiration, mais ils peuvent devenir invalides après que l'utilisateur a rejeté votre demande. En outre, l'équipe Twitter peut suspendre votre application si vous dépassez les limites ou effectuez d'autres opérations qui ne respectent pas les conditions de l'API. Vous pouvez consulter ces termes pour en savoir plus sur des violations spécifiques..

Créez votre application

Dans un premier temps, nous devons configurer une nouvelle application Twitter. Créons une nouvelle application sur la page de gestion des applications.

Après vous être connecté, vous devez cliquer sur le bouton Créer une nouvelle application bouton et remplissez le formulaire avec les détails de votre demande: nom, description, site Web et URL de rappel.

Quelle est l'URL de rappel? Lorsque les utilisateurs acceptent que notre application utilise leur compte, le navigateur les envoie à cette URL avec le vérificateur OAuth dans GET. Et nous allons utiliser ce vérificateur pour obtenir le jeton d'accès utilisateur.

Remarquer: N'oubliez pas de remplacer le site Web et l'URL de rappel par votre domaine public lorsque vous partagez votre application avec de vrais utilisateurs..

Après avoir rempli le formulaire, vous pouvez signer le contrat de développeur et cliquer sur le lien. Soumettre bouton pour créer votre application.

Toutes nos félicitations! Vous avez maintenant accès à une page sur laquelle vous pouvez consulter les détails et modifier les paramètres de votre nouvelle application, modifier les autorisations, gérer les clés et les jetons d'accès. Accédez au Clés et jetons d'accès onglet et trouver le La clé du consommateur et Secret du consommateurNous les utiliserons bientôt.

Commencer à coder

Choisir une bibliothèque

Avant de commencer à coder, nous devons choisir une bibliothèque avec laquelle travailler avec les API Twitter et Oauth 2.0. Vous pouvez obtenir un aperçu des bibliothèques existantes sur la page des développeurs Twitter. Dans ce tutoriel, j'utiliserai TwitterOAuth comme le plus populaire et le plus facile à utiliser. Nous pouvons l'installer en ligne de commande avec Composer:

compositeur besoin abraham / twitteroauth

Le fichier de configuration

Créons un nouveau fichier nommé config.php pour stocker toutes les données statiques. Spécifiez les détails suivants dans votre application.

 'Échographie de la langue française' ;

Démarrer le script de connexion

Créez maintenant un nouveau fichier nommé twitter_login.php et incluez le chargement automatique de Composer, la bibliothèque TwitterOAuth, démarrez la session et importez les paramètres de notre application à partir du fichier de configuration..

Demander une autorisation

Dans cette partie, nous devons demander à l'utilisateur d'autoriser notre application. Pour atteindre cet objectif, nous allons créer un objet de la classe TwitterOAuth, demander un jeton de l'application à l'API Twitter, obtenir l'URL de la page d'autorisation à l'aide de ce jeton et rediriger l'utilisateur vers cette page..

// Créer l'objet TwitterOAuth $ twitteroauth = new TwitterOAuth ($ config ['consommateur_key'], $ config ['consumer_secret']); // jeton de demande d'application $ request_token = $ twitteroauth-> oauth ('oauth / request_token', ['oauth_callback' => $ config ['url_callback']]]; // lance une exception si quelque chose ne va pas si ($ twitteroauth-> getLastHttpCode ()! = 200) lance un nouveau \ Exception ('Un problème lors de l'exécution de cette demande');  // enregistrer le jeton de l'application dans la session $ _SESSION ['oauth_token'] = $ request_token ['oauth_token']; $ _SESSION ['oauth_token_secret'] = $ request_token ['oauth_token_secret']; // génère l'URL pour demander l'autorisation de notre application $ url = $ twitteroauth-> url ('oauth / authorize', ['oauth_token' => $ request_token ['oauth_token']]]; // et en-tête de redirection ('Location:'. $ url);

Notez que nous sauvegardons les jetons d'application dans la session, car nous en aurons besoin à l'étape suivante..

Maintenant, vous pouvez exécuter ce script dans le navigateur, et si tout se passe bien, vous serez redirigé vers la page API Twitter avec quelque chose comme ceci:

Vous serez redirigé vers l'URL de rappel en cliquant sur le bouton Autoriser l'App bouton. Mais pas si vite, il faut d'abord créer un script de rappel.

Obtenir le jeton de l'utilisateur

Notre prochaine étape consiste à créer un script de rappel. Créons un nouveau fichier nommé twitter_callback.php et incluez la bibliothèque TwitterOAuth, le fichier de configuration et la session de démarrage comme nous l'avons fait dans la partie précédente.

Ensuite, nous vérifierons si nous avons reçu un paramètre de vérificateur d'authentification de l'API Twitter. S'il manque quelque chose, nous redirigerons l'utilisateur pour qu'il se reconnecte.

$ oauth_verifier = filter_input (INPUT_GET, 'oauth_verifier'); if (vide ($ oauth_verifier) ​​|| vide ($ _SESSION ['oauth_token'])) || vide ($ _SESSION ['oauth_token_secret'])) // quelque chose manque, allez vous reconnecter en-tête ('Location:'. $ config ['url_login']); 

L'étape suivante consiste à se connecter à l'API Twitter avec le jeton d'application et à demander un jeton d'utilisateur à l'aide du vérificateur OAuth:

// se connecter avec le jeton d'application $ connection = new TwitterOAuth ($ config ['consommateur_key'], $ config ['consommateur_secret'], $ _SESSION ['oauth_token'], $ _SESSION ['oauth_token_secret']); // demande de jeton utilisateur $ token = $ connection-> oauth ('oauth / access_token', ['oauth_verifier' => $ oauth_verifier]);

Et maintenant, vous avez le jeton utilisateur stocké dans le $ jeton variable.

Comment utiliser ce jeton

Nous pouvons utiliser ce jeton pour agir au nom du compte de l'utilisateur. Nous pouvons le stocker dans la session ou enregistrer dans la base de données pour gérer le compte de l'utilisateur la prochaine fois sans demander la permission. Pour vous connecter à l'API Twitter avec le jeton utilisateur, procédez comme suit:

$ twitter = new TwitterOAuth ($ config ['consommateur_key'], $ config ['consommateur_secret'], $ token ['oauth_token'], $ token ['oauth_token_secret']);

Créer un test Tweet

Pour créer un nouveau tweet à partir du compte de l'utilisateur, il suffit d'ajouter un petit morceau de code:

$ status = $ twitter-> post ("statuses / update", ["status" => "Merci @nedavayruby, je sais maintenant comment authentifier les utilisateurs avec Twitter à cause de ce tutoriel https://goo.gl/N2Znbb" ]); echo ('Créé nouveau statut avec #'. $ status-> id. PHP_EOL);

Vous pouvez également obtenir des détails sur l'état de la réponse de l'API stockée dans le $ status variable.

Enfin, nous sommes prêts à tester notre script. 

Conclusion

Comme vous pouvez le constater, créer une application Twitter n’est pas si difficile. Vous avez maintenant toutes les fonctionnalités de l'API à utiliser: vous pouvez créer de nouveaux tweets, télécharger des médias, gérer des amitiés, etc..

N'oubliez pas que vous pouvez désormais collecter des jetons OAuth et que vous disposez d'un grand pouvoir pour agir au nom de vos utilisateurs. Mais avec un grand pouvoir vient une grande responsabilité - c'est pourquoi vous devez gérer cette situation avec élégance et servir une expérience utilisateur de qualité.

Si vous avez des questions ou des commentaires, n'hésitez pas à les poster dans la section commentaires. J'attendrai cela avec impatience et j'essaierai de répondre à chacun de vos commentaires..

Lectures complémentaires et liens connexes

Notez que j'ai préparé un projet complet pour ce tutoriel sur GitHub et que vous pouvez le consulter avec un lien sur le côté droit du site ou en utilisant ce lien..

  • Applications Twitter
  • API REST Twitter
  • Vue d'ensemble de Twitter OAuth
  • Bibliothèque PHP TwitterOAuth
  • Autres bibliothèques Twitter
  • Page d'accueil OAuth
  • L'article original sur Comment authentifier les utilisateurs avec Twitter OAuth.