现象
- 免登录窗口打开【查看引用片段】,AI回复后显示引用文档,点击文档提示无权限;
- 打开【查看引用片段】【查看引用全文】显示原文后,点击【打开原文】提示无权限;
- 点击【下载数据】可触发下载,但返回报错信息:
{"code":429 statusText:"error" message:"Too many request request 1 times every 60 seconds" data:null}。
可能原因
- 免登录场景下,关联的知识库或文档未配置未登录用户的访问权限,导致点击后触发无权限校验;
- 【打开原文】按钮的权限校验逻辑未适配免登录状态,未正确识别未登录用户的权限状态;
- 下载接口的限流规则配置为每60秒仅允许1次请求,触发后返回429报错。
排查步骤
- 确认当前访问模式为免登录状态,检查应用关联的知识库/文档的权限设置,确认是否开放未登录用户的访问权限;
- 查看前端页面中【打开原文】按钮的权限控制逻辑,确认是否适配免登录场景的权限校验规则;
- 检查下载接口的限流配置参数,确认当前每60秒允许的请求次数限制;
- 统计下载操作的触发频率,确认是否在60秒内多次触发下载请求,触发限流规则。
解决与验证
- 针对文档无权限问题:调整知识库/文档的权限配置,开放未登录用户的访问权限,需按实际环境确认具体配置路径;若无需展示引用文档,可直接隐藏应用的文档展示项。
- 针对【打开原文】无权限问题:修改前端权限校验逻辑,适配免登录场景的权限状态,若无需该功能可直接隐藏【打开原文】选项。
- 针对下载限流问题:调整下载接口的限流阈值配置,修改每60秒允许的请求次数,需按实际环境确认配置项;若无需下载功能,可直接隐藏【下载数据】选项。
- 验证:免登录场景下点击引用文档、【打开原文】不再提示无权限,下载操作不再返回429报错,或对应功能按钮已按需求隐藏。
来源:https://github.com/labring/FastGPT/issues/6328