Estoy usando react-twitter-auth como parte de mi flujo de autenticación de usuario OAuth 1.0a en mi sitio. Mi objetivo es autenticar a un usuario y luego acceder a su nombre de usuario. Hasta ahora tengo un montón de código que tomé prestado de un sitio web. Hay un código del lado del cliente y un código de back-end.
El cliente inicia el flujo de autenticación y envía una solicitud a http://localhost:4000/api/v1/auth/twitter/reverse . Allí, veo en una declaración de console.log que tengo el valor oauth_token que necesitaré más adelante para el paso 3 del llamado flujo de autenticación de "autenticación de 3 patas" por el que estoy pasando.
Aquí está la ruta del servidor que estoy golpeando:
router.route("/auth/twitter/reverse").post(function (req, res) { console.log(72); request.post( { url: "https://api.twitter.com/oauth/request_token", oauth: { oauth_callback: "http://localhost:3000/", consumer_key: twitterConfig.consumerKey, consumer_secret: twitterConfig.consumerSecret, }, }, function (err, r, body) { if (err) { console.log(err, 83); return res.send(500, { message: e.message }); } var jsonStr = '{ "' + body.replace(/&/g, '", "').replace(/=/g, '": "') + '"}'; console.log(jsonStr, 88); res.send(JSON.parse(jsonStr)); } ); });Obtengo valores como:
{ "oauth_token": "HnQ1SgAAAAAAAABco", "oauth_token_secret": "y1qeyxZeiCEWqkKz9y", "oauth_callback_confirmed": "true"} 88Se han eliminado algunos caracteres en caso de que no sean datos que deba exponer. De todos modos:
Necesito ese valor "oauth_token" para llegar a mi cliente. ¿Por qué? Porque obtengo un pin en la parte de autenticación de 3 patas, por lo que necesito que ambos valores lleguen a mi servidor al mismo tiempo.
Si no estuviera usando la biblioteca react-twitter-auth, no tendría ningún problema aquí, porque solo estaría enviando una solicitud http a través de fetch, por lo que tendría un bloque .then() para mostrarme cuál es el valor. de res.send(JSON.parse(jsonStr)); está en la parte delantera. Pero no tengo eso, no hay nada para escuchar la parte res.send() . ¿Cómo puedo escucharlo?
Gracias
editar: soy crítico con esta biblioteca porque no tiene en cuenta lo que sucede con la estrategia basada en PIN para la autenticación de 3 patas.
Mirando el código base de react-twitter-auth, no estoy seguro de que admitan la autenticación de 3 patas, ya que están llamando al punto final de autenticación en lugar de al punto final autorizado como se indica en la documentación de la API de Twitter.
Intentaría reaccionar-twitter-oauth bifurcado de reacr-twitter-auth o revisar la documentación de Twitter para implementarlo yo mismo