Keystone 6能否禁用用户认证/登录?恳请社区技术指导
在Keystone 6中禁用用户认证的方法
Keystone 6的认证体系通过配置项直接管控,要禁用认证可按以下步骤操作:
1. 移除认证核心配置
如果项目基于官方模板创建,keystone.ts中会包含createAuth和withAuth相关代码,直接移除这些内容,并将会话(session)配置设为null即可完全禁用认证:
修改前的典型认证配置:
import { createAuth } from '@keystone-6/auth'; import { statelessSessions } from '@keystone-6/core/session'; const { withAuth } = createAuth({ listKey: 'User', identityField: 'email', secretField: 'password', }); const session = statelessSessions({ secret: process.env.SESSION_SECRET!, }); export default withAuth( config({ // 项目其他配置 session, }) );
修改后:
export default config({ // 保留项目原有的schema、server等配置 session: null, // 禁用会话及关联认证 });
2. 调整访问控制规则
确保所有列表的操作权限对未认证用户开放,可在列表定义中单独设置:
const lists = { User: list({ fields: { /* 字段定义 */ }, access: { create: allowAll, read: allowAll, update: allowAll, delete: allowAll, }, }), // 其他列表同理配置 };
也可在全局配置中设置默认访问规则为允许所有:
export default config({ // ...其他配置 access: { default: allowAll, }, lists, });
3. 清理认证相关路由(可选)
如果项目中手动添加了自定义认证路由,直接删除这些配置即可,避免无用API端点残留。
内容的提问来源于stack exchange,提问作者whodeee
相关产品推荐
相关产品推荐

