自定义 Dify 前端,自行实现 RBAC (基于角色的访问控制) 的开源项目
项目GItHubhttps://github.com/codeHui/custome-webapp-for-dify自行实现 RBAC (基于角色的访问控制)RBAC 行为如下图左侧所示当admin管理员登录时他们可以看到所有应用而user普通用户只能看到为其角色配置的应用./rbac.json中。软件架构本项目基于 Dify 官方 MIT 项目langgenius/webapp-conversationNext.js进行的二次开发。有关 RBAC 的具体实现流程请参阅readme/rbac_flow_guide_cn.md你可以对比backup/webapp-conversation_original_code_202606分支和main分支查看本项目对原始代码所做的具体修改。应用配置原始项目langgenius/webapp-conversation配置在当前目录下创建一个名为.env.local的文件并从.env.example复制内容。设置以下内容# 应用地址这是 API 的基础 URL。 NEXT_PUBLIC_API_URLhttp://127.0.0.1/v1 # 用于 RBAC 的多应用配置。 # appId 是 Dify 应用 URL 中的唯一标识符。 # apiKey 是在应用的 API 访问页面中生成的。 NEXT_PUBLIC_AGENT_CONFIGS[{id:agent-1,name:Agent 1,appId:your-first-app-id,apiKey:app-your-first-key},{id:agent-2,name:Agent 2,appId:your-second-app-id,apiKey:app-your-second-key}] # 用于登录时签名 JWT Token。 JWT_SECRETreplace-this-in-productionappId和apiKey来自你在 Dify 后台创建应用后的配置信息如下图所示langgenius/webapp-conversation是 Dify官方提供的可以二次开发去自定义 Web APP 的项目你也可以在config/index.ts文件中进行更多配置exportconstAPP_INFO:AppInfo{title:Chat APP,description:,copyright:,privacy_policy:,default_language:zh-Hans}exportconstisShowPrompttrueexportconstpromptTemplateRBAC 配置直接编辑./rbac.json文件即可管理角色和账户。后端会在每次请求时重新加载此文件。{defaultPassword:123456,roles:{admin:{agents:[agent-1,agent-2]},user:{agents:[agent-1]}},users:[{username:admin,role:admin},{username:user,role:user}]}RBAC 注意事项roles.role.agents例如agent-1,agent-2对应NEXT_PUBLIC_AGENT_CONFIGS中定义的id。登录注意事项defaultPassword是所有配置账户的共享密码。默认账户为admin / 123456和user / 123456。快速开始首先安装依赖npminstall# 或者yarn# 或者pnpminstall然后运行开发服务器npmrun dev# 或者yarndev# 或者pnpmdev用浏览器打开 http://localhost:3000 即可查看效果。开源本项目基于langgenius/webapp-conversation的 MIT 许可证发布。本项目并非 Dify 官方项目。请注意本项目是使用 Vibe Coding 快速开发的尚未达到生产就绪状态。希望它能作为一个跳板激发更多的创新。感兴趣的开发者欢迎对其进行优化。Discussion, bug fixes, 和 pull requests 都非常欢迎