Leer el artículo en Inglés.

Con las aplicaciones actuales, debes haber observado que se ofrece una opción para que uno pueda iniciar sesión con Twitter, LinkedIn, FaceBook, Google y otros tipos de medios sociales. Esta característica está asociada con una serie de ventajas. En primer lugar, los usuarios no tendrán que registrarse con una nueva cuenta. En segundo lugar, los desarrolladores no estarán obligados a implementar la parte de registro de usuario.

En este post, creamos una aplicación que nos permita iniciar sesión con Twitter. En este caso, se le pedirá que haga clic en el botón “Iniciar sesión con Twitter“, después de lo cual será dirigido a la página de Twitter. Esto funcionará de la misma manera que funciona el registro OAuth. Debes tener instalado el Node.js en tu sistema, así que solo tenemos que inicializarlo y configurarlo como se muestra a continuación:

npm init npm install express node-twitter-api bluebird

La primera parte de la aplicación debe ser después de que el usuario ha hecho clic en el botón de “Iniciar sesión con Twitter”. Deberíamos hacer uso de jQuery con el fin de enviar una solicitud Ajax al código del servidor que generará un token de solicitud , y luego el usuario será redirigido a la página para iniciar sesión en Twitter. Aquí está el código:

https://code.jquery.com/jquery-2.1.4.min.js

$(function() { $("#sign-with-twitter").on("click", function()
{ window.location.href = "/request-token"; }); });



Sign in with Twitter



Una vez que el usuario ha hecho clic en el botón, se dirigirá una solicitud a GET “/ request-token”. Después de esto, la solicitud redirigirá al usuario a la página de inicio de sesión de Twitter en el servidor

La ruta para manejar la solicitud “/ request-token” en el servidor es como se muestra a continuación:

"use strict";
var Twitter = require("node-twitter-api"),
secret = include("secret");
module.exports = function(application)
{
var twitter = new Twitter({
consumerKey: secret.twitter.consumerKey,
consumerSecret: secret.twitter.consumerSecret,
callback: secret.twitter.callbackUrl
});
var _requestSecret;
application.get("/request-token", function(req, res) {         twitter.getRequestToken(function(error, requestToken, requestSecret) {
if (error)  res.status(500).send(error);
else {
_requestSecret = requestSecret;
res.redirect("https://api.twitter.com/oauth/authenticate?oauth_token=" + requestToken);               }
});
});

...

};

Una vez que el usuario ha iniciado sesión, la redirección a la URL que hemos especificado se hará, por lo que debe crear una página para ello. El código siguiente se puede utilizar para hacerlo:

https://code.jquery.com/jquery-2.1.4.min.js



$(function()
{
$.get("/access-token" + location.search).done(function(user) {

// Perform an activity with the signed in user's information here.
});
});







Nuestra página de devolución de llamada solo solicitará un token de acceso desde el servidor.

Ahora es el momento para que manejemos la solicitud desde la página de devolución de llamada para el token de acceso. Esto se puede hacer como se muestra en el código que se indica a continuación:

"use strict";

var Twitter = require("node-twitter-api"),
secret = include("secret");
module.exports = function(application)
{
var twitter = new Twitter({
consumerKey: secret.twitter.consumerKey,
consumerSecret: secret.twitter.consumerSecret,
callback: secret.twitter.callbackUrl
});

var _reqSecret;

...

application.get("/access-token", function(req, res)
{
var reqToken = req.query.oauth_token,
verifier = req.query.oauth_verifier;
twitter.getAccessToken(reqToken, _reqSecret, verifier, function(error, accessToken, accessSecret)
{
if (error)  res.status(500).send(error);
else
twitter.verifyCredentials(accessToken, accessSecret, function(error, user)
{
if (error)  res.status(500).send(error);
else res.send(user);
});
});
});
};

Leer el artículo en Inglés.
Anuncios

Un comentario sobre “Iniciar sesión con Twitter en Node.js

Write your comment