Keystone JS 6:如何为列表的id字段添加访问控制
在Keystone JS 6中为自动生成的id字段配置访问控制
Keystone默认自动生成的id字段不会显式出现在列表的fields配置里,直接设置访问控制找不到对应入口。解决方法是显式声明id字段,覆盖默认配置的同时指定访问规则:
- 根据你
schema.prisma中id的类型(默认是UUID,也可能是自增整数),选择对应字段类型(uuid()或autoincrement()) - 在列表的
fields中显式定义id字段并配置access规则
示例代码(UUID类型id)
import { list } from '@keystone-6/core'; import { text, uuid } from '@keystone-6/core/fields'; export const YourListName = list({ fields: { id: uuid({ access: { read: () => true, update: () => false, }, // 保持与自动生成id一致的核心属性 isIndexed: 'unique', defaultValue: { kind: 'uuid' }, }), // 其他业务字段示例 title: text({ validation: { isRequired: true } }), }, });
若id为自增整数类型
把uuid()替换为autoincrement()即可:
id: autoincrement({ access: { read: () => true, update: () => false, }, isIndexed: 'unique', }),
配置完成后,id字段会开放读取权限,同时完全禁止更新操作,匹配你需要的规则。
内容的提问来源于stack exchange,提问作者Daria
相关产品推荐
相关产品推荐

