如何防止 feathers.js 返回用户路由中的所有用户
How to prevent feathers.js from returning all users in the users route
我已经使用 feathers.js 一段时间了,但有些东西我四处寻找后找不到。如何防止经过身份验证的用户看到所有用户?
当我在我的 /users
路线上与邮递员进行 GET 时,如果我通过身份验证,我将收到在该应用程序上注册的所有用户。我该如何防止这种情况。我尝试返回我自己的自定义响应,但这似乎阻止了 /authentication
路由。
任何帮助将不胜感激,因为羽毛非常好用。
您可以使用 limit
和 skip
参数。因此,当您执行 FIND (GET) 请求时,也发送限制:5,跳过:0。这是一种在 feathersjs 中进行分页的方法。
您可以在这里查看:https://docs.feathersjs.com/api/databases/common.html#pagination
或者,如果你想为某个服务的分页设置默认值,你可以在初始化阶段进行,像这样:
app.use('/users', service({
paginate: {
default: 5,
max: 25
}
}));
目前feathers-authentication-hooks是最好的限制查询方式,最常用于关联当前用户。因此,为了将所有请求限制为当前经过身份验证的用户,您可以这样做:
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'
})
]
}
})
我已经使用 feathers.js 一段时间了,但有些东西我四处寻找后找不到。如何防止经过身份验证的用户看到所有用户?
当我在我的 /users
路线上与邮递员进行 GET 时,如果我通过身份验证,我将收到在该应用程序上注册的所有用户。我该如何防止这种情况。我尝试返回我自己的自定义响应,但这似乎阻止了 /authentication
路由。
任何帮助将不胜感激,因为羽毛非常好用。
您可以使用 limit
和 skip
参数。因此,当您执行 FIND (GET) 请求时,也发送限制:5,跳过:0。这是一种在 feathersjs 中进行分页的方法。
您可以在这里查看:https://docs.feathersjs.com/api/databases/common.html#pagination
或者,如果你想为某个服务的分页设置默认值,你可以在初始化阶段进行,像这样:
app.use('/users', service({
paginate: {
default: 5,
max: 25
}
}));
目前feathers-authentication-hooks是最好的限制查询方式,最常用于关联当前用户。因此,为了将所有请求限制为当前经过身份验证的用户,您可以这样做:
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'
})
]
}
})