validar simple online nodejs node implementar example ejemplo create node.js authentication express passport.js

node.js - simple - node js authentication



token de autenticación de pasaporte nodejs (2)

Estoy escribiendo una aplicación nodejs que me gustaría utilizar tanto como aplicación web como como proveedor de API. Una vez que un usuario está autenticado, quiero asignarle un token a ese usuario para usarlo en solicitudes posteriores. Esto funciona muy bien con el pasaporte para la aplicación web, ya que solo serializo y deserializo al usuario con el token en la sesión. Sin embargo, al responder a las solicitudes de la API, no hay cookies para configurar para almacenar la información de la sesión. Idealmente, el pasaporte buscará el token tanto en la sesión como en el cuerpo de la solicitud. ¿Hay alguna forma de configurar el pasaporte para lograr esto?


Como bnuhero menciona, no necesitas sesiones (aunque ese enfoque también tiene sus méritos). Aquí hay un proyecto de placa de caldera que estoy comenzando para esto: https://github.com/roblevintennis/passport-api-tokens

Aquí hay una alternativa y fácil de seguir (pero SÍ usa sesiones). Podría ser una buena referencia cruzada: http://scotch.io/tutorials/javascript/easy-node-authentication-setup-and-local

Y una referencia más relacionada: http://mherman.org/blog/2013/11/11/user-authentication-with-passport-dot-js/


Simplemente use el token de acceso en cada solicitud. Usar una sesión NO es necesario. El siguiente es el flujo de trabajo:

POST /signin

  1. El nombre de usuario y la contraseña se publican en la solicitud del cliente.
  2. El servidor autentica al usuario mediante la estrategia local del pasaporte. Ver passport-local .
  3. Si las credenciales representan un usuario válido, el servidor devuelve el token de acceso generado por algún generador. node-jwt-simple es una buena opción.
  4. Si las credenciales no son válidas, redirija a /signin .

Cuando el cliente recibe el token de acceso del servidor de autorización, puede realizar solicitudes a los recursos protegidos en el servidor. Por ejemplo:

GET /api/v1/somefunction?token=''abcedf''

  1. El cliente llama a alguna api del servidor con el argumento token.
  2. El servidor autentica el token utilizando la Estrategia de portador del pasaporte. Ver passport-http-bearer .

Referencias

Cree una API de Oauth segura con passport.js y express.js (node.js)