Feathers: Combinando registro y autenticación

Creado en 27 dic. 2016  ·  3Comentarios  ·  Fuente: feathersjs/feathers

Siento que no hay mucha explicación sobre la 'magia' detrás de la autenticación. Me gustaría combinar mi acción de registro para devolver un token JWT. ¿Alguien podría ayudarme?

Creo que sería algo como:

  • middleware / signup.js
    `` js
    const newUser = {
    usuario: req.body.user,
    pase: req.body.pass
    }
    app.service ('usuarios'). create (newUser)
    .then (usuario => app.authenticate (usuario)) // aunque no se autentica definido
    .entonces (usuario autenticado => res.json (usuario autenticado));
    `` ``

¿Puedo obtener ayuda o explicación sobre cómo usar la autenticación fuera del reino mágico? ¡Gracias!

Editar: Hice de esto un problema porque creo que debería haber más documentación sobre la autenticación manual. Esto es más una demostración, ya sé que hay un problema al respecto, como el # 467

Comentario más útil

Sin embargo, la aplicación generada seguirá usando la autenticación antigua, en cuyo caso tendrá que ser

const { email, password } = req.body;

app.service('users').create({ email, password })
  .then(user => app.service('auth/local').create({ email, password }))
  .then(authenticatedUser => res.json(authenticatedUser));

Todos 3 comentarios

@rstegg , parece que estás bastante cerca. Si app.authenticate() no está definido, probablemente esté utilizando el middleware de registro antes del complemento de autenticación. Primero, asegúrese de que se use el complemento de autenticación.

const newUser = { 
  user: req.body.user,
  pass: req.body.pass
}
app.service('users').create(newUser)
  .then(user => app.authenticate(user)) // authenticate should be defined if you register middleware in the correct order.
  .then(jwt => res.json(jwt));

Sin embargo, la aplicación generada seguirá usando la autenticación antigua, en cuyo caso tendrá que ser

const { email, password } = req.body;

app.service('users').create({ email, password })
  .then(user => app.service('auth/local').create({ email, password }))
  .then(authenticatedUser => res.json(authenticatedUser));

Este problema se ha bloqueado automáticamente ya que no ha habido ninguna actividad reciente después de que se cerró. Abra un nuevo problema con un enlace a este problema para errores relacionados.

¿Fue útil esta página
0 / 5 - 0 calificaciones