Web应用可正常登录但无法创建新用户,POST请求权限报错求助
排查Directus新用户注册无权限问题的关键点
检查公共角色(Public Role)的权限配置
注册接口默认走公共权限,得确保Public角色对users集合开了**创建(Create)**权限,权限范围别设成“仅自身”——注册时还没生成用户ID,这个规则会直接拦截请求。另外要确认/users的POST端点允许Public角色访问。核对注册相关环境变量
打开.env文件,确认PUBLIC_REGISTRATION设为true,这是公开注册的核心开关。同时检查PUBLIC_REGISTRATION_ROLE是否填对了目标角色ID(比如你想让新用户默认拥有的User角色ID),填错或空着都会导致权限不匹配。验证用户集合的字段权限
注册时要提交的字段(比如email、password),必须确保Public角色对这些字段有创建权限。要是把必填字段的创建权限关了,会直接因为字段权限不足导致请求被拒。排查自定义逻辑干扰
如果项目加了自定义Hook或Flow(比如用户创建前的校验逻辑),要确认这些逻辑没拦截正常注册请求——比如Hook里是不是错误返回了权限拒绝响应,或者Flow触发条件导致请求中断。测试原生Directus接口
绕开你的Web应用,直接用Postman或curl调用/users的POST接口,传email、password等必填字段,看能不能成功创建用户。原生接口失败的话,问题肯定在Directus配置;原生接口成功的话,大概率是你的Web应用请求参数有误(比如漏传字段、请求头不对)。
内容的提问来源于stack exchange,提问作者TheViking16
相关产品推荐
相关产品推荐

