He estado usando feathers.js desde hace algún tiempo y hay algo que no puedo encontrar después de buscar. ¿Cómo evita que los usuarios autenticados vean a todos los usuarios?
cuando hago un GET con cartero en mi ruta /users , si estoy autenticado, recibiré a todos los usuarios registrados en la aplicación. ¿Cómo evito esto? He intentado devolver mis propias respuestas personalizadas, pero esto parece bloquear la ruta de /authentication .
Cualquier ayuda será apreciada ya que es muy agradable trabajar con plumas.
Actualmente , Feathers-authentication-hooks es la mejor manera de limitar las consultas, y se usa más comúnmente para asociar al usuario actual. Entonces, para limitar todas las solicitudes al usuario actualmente autenticado, haría esto:
const { authenticate } = require('@feathersjs/authentication'); const { setField } = require('feathers-authentication-hooks'); app.service('users').hooks({ before: { all: [ authenticate('jwt'), setField({ from: 'params.user.id', as: 'params.query.id' }) ] } })Puede utilizar los parámetros de limit y skip . Entonces, cuando realice la solicitud FIND (GET), envíe también limit: 5, skip: 0. Esta es una forma de hacer una paginación en feathersjs.
Puede consultarlo aquí: https://docs.feathersjs.com/api/databases/common.html#pagination
O, si desea establecer valores predeterminados para la paginación de un determinado servicio, puede hacerlo en la fase de inicialización, así:
app.use('/users', service({ paginate: { default: 5, max: 25 } }));