Comment faire l'authentification OAuth via AJAX / jQuery?

J'ai travaillé un peu avec l'API Web de Twitter, je sais que cela fonctionne avec OAuth, j'ai consommé l'API à l'aide d'une bibliothèque python. J'ai également essayé un peu d'API Instagram à l'aide d'une petite bibliothèque Java Script.

Je connais ceux qui exécutent des requêtes Web REST en arrière-plan, en authentifiant d'abord et puis en demandant des requêtes en tant que code I.

Cependant, que faire si je veux effectuer les requêtes en utilisant jQuery $.ajax partir d'une application Web?

J'ai lu des documents et des sites et il semble que ce soit possible. Comme seulement ajaxing aux routes API, en commençant par l'itinéraire d'authentification.

Mais, comment fonctionne ce processus? Je veux dire, je demande par AJAX à la route d'authentification et ensuite comment puis-je garder une trace de cette authentification. Comment conserver cette communication ? L'URL de redirection jouera-t-elle son rôle alors?

En lisant ce site pour Instagram API, je commence à avoir une idée à ce sujet, mais j'ai eu les doutes mentionnés ci-dessus.

Je souhaite effectuer toutes les requêtes AJAX dans le fond du serveur Java Script (j'utilise node.js ), en supposant que je fournirai mes applications OAuth dans $.ajax . Est-ce que c'est OK ou je peux vraiment le coder sur le site client, en gardant mes jetons OAuth sauvegardés?

Et, si cela concerne cette même question, en ce qui concerne les octets (images, sons, etc.), comment saisir la réponse de l'API.

D'accord, si je comprends ce que vous essayez de faire, c'est faire un appel Ajax d'une page Web vers l'API Twitter et publier / récupérer des tweets et d'autres informations de Twitter.

Depuis la sortie de l'API v1.1, Twitter a déconseillé l'API v1.0 et l'une des principales modifications dans 1.1 était l' authentification requise sur tous les points d'extrémité

Et pour le faire à partir de JavaScript et jQuery est tout à fait possible (bien que très lourd, difficile et nécessite l'utilisation de nombreuses bibliothèques JS tierces à HMAC Hash vos données et vos clés et calculer les longueurs de contenu côté client avant de faire votre demande. Ne prend pas en charge CORS, mais prend en charge JSONP pour ces types de requêtes Ajax. Mais cela n'est pas recommandé – car ce faisant, côté client, vous devez avoir vos clés d'accès à l'application Twitter – clés privées – intégrées dans vos fichiers de script – ce qui est essentiellement Un grand NO-NO. Et, par conséquent, des solutions côté serveur pour générer vos jetons oAuth sont recommandées. Mais une fois que vous l'avez réalisé, il est peut-être plus facile d'obtenir le jeton sur votre script et de faire appel à Ajax à l'aide de ce navigateur. Je ne suis pas allé dans mes recherches.

En outre, ceci est basé sur mes recherches en milieu 2013 lorsque mes widgets Twitter Ajax ont cessé de fonctionner à cause de ce changement et j'ai renoncé à essayer de le résoudre en utilisant cette route après avoir réalisé que cela compromettrait mes clés de sécurité. Les choses peuvent avoir changé depuis lors.

Si vous êtes toujours intéressé à trouver une solution, ce passage à niveau serait un bon endroit pour commencer à apprendre sur l'oAuth de Twitter et comment les jetons d'accès sont générés: https://dev.twitter.com/docs/auth/oauth