小编Mat*_*tty的帖子

羽毛-将服务响应限制为仅当前用户拥有的数据

在Feathers中,目标是将某些服务上可访问的数据限制为仅由当前登录用户拥有的数据。

假设我使用的是Feathers身份验证,此服务上可用的数据存储在数据库表中,并且包含用户ID的表列称为user_id,此钩子是否可以实现目标?

如果没有,那么需要改变什么?

如果能够回答这个问题很重要,那么我正在使用Sequelize和Postgres。

const { authenticate } = require('feathers-authentication').hooks;

const { queryWithCurrentUser } = require('feathers-authentication-hooks');
const { associateCurrentUser } = require('feathers-authentication-hooks');

const readRestrict = [
  queryWithCurrentUser({
    idField: 'id',
    as: 'user_id'
  })
];

const modRestrict = [
  associateCurrentUser({
    idField: 'id',
    as: 'user_id'
  })
];

module.exports = {
  before: {
    all:    [ authenticate('jwt') ],
    find:   [ ...readRestrict ],
    get:    [ ...readRestrict ],
    create: [ ...modRestrict ],
    update: [ ...modRestrict ],
    patch:  [ ...modRestrict ],
    remove: [ ...modRestrict ]
  }, …
Run Code Online (Sandbox Code Playgroud)

hook feathersjs

6
推荐指数
1
解决办法
663
查看次数

将羽毛服务方​​法限制为外部用户,但允许任何内部调用查询

我想限制对使用 AssociateCurrentUser 的外部调用的 Feathers 服务方法的调用。

我也想允许服务器在不限制的情况下调用这个服务方法。

用例是通过这个服务然后客户端使用一个锁表,所有客户端都可以看到所有的锁,偶尔服务器应该清除这个表中的废弃行。行放弃可能发生在网络故障等情况下。当服务器删除数据时,应该向客户端发出正常的 Feathers 删除事件。

我想这应该是 associateCurrentUser 和 disallow 钩子的混合,但我什至无法开始尝试这个,因为我不知道它会如何组合在一起。

请问如何实现这一点?

更新:

Daff 的 Feathers.js API 中找到了这个答案User's permissions,这意味着如果钩子的 context.params.provider 为空,则调用是内部的,否则是外部的。任何人都可以确认在所有情况下都是如此吗?

从我自己的测试来看似乎是这样,但我不知道是否有任何特殊情况可能会咬我。

feathersjs

3
推荐指数
1
解决办法
1701
查看次数

bash source 命令不适用于管道

有 3 个文件(abc),均具有777权限:

$ ls
a  b  c
Run Code Online (Sandbox Code Playgroud)

上述文件有以下内容:

$ cat a
#!/bin/bash
export A=aaa
$ cat b
#!/bin/bash
source ./a
echo $A
$ cat c
#!/bin/bash
source ./a | >> log
echo $A
Run Code Online (Sandbox Code Playgroud)

b和之间的唯一区别c| >> log

$ diff b c
2c2
< source ./a
---
> source ./a | >> log
Run Code Online (Sandbox Code Playgroud)

执行时b会输出预期的结果aaa

$ ./b
aaa
Run Code Online (Sandbox Code Playgroud)

执行时c,对我来说,它输出一个意外的空白行而不是预期的aaa,并且log脚本 …

bash pipe

0
推荐指数
1
解决办法
1571
查看次数

标签 统计

feathersjs ×2

bash ×1

hook ×1

pipe ×1