前言

本地Vmware之前部署的dify,很长时间没用忘记密码了,在web界面无法重置,邮箱收不到验证码,这篇博客主要记录怎么查看之前已创建的账户和重置密码

查看账户

如果之前创建的账户忘记了,或者想要看下当前dify注册了哪些账户,可以用一下方式查看

  1. 连接至Dify的PostgreSQL数据库容器
# 进入dify工作目录,查看pg容器名
docker-compose ps

在这里插入图片描述

#以命令行方式进入pg容器
docker exec -it docker-db-1 bash 
  1. 通过pg数据库自带的客户端工具连接dify数据库
# 以超级用户postgres进入dify数据库
psql -U postgres -d dify
  1. 查询所有账户、密码
SELECT * FROM accounts

在这里插入图片描述
值得注意的是,数据库中显示的密码是通过​​PBKDF2-HMAC-SHA256​​ 算法单向加密的结果,理论上无法从存储的哈希值反向破解出原始密码,所以重置密码得通过其他方式。

重置密码

密码重置也有两种方式,一种是web客户端重置,修改dify邮件服务配置,让其能正常发送邮件,然后我们在web客户端直接修改密码,另一种方式是通过

web客户端方式重置

正常情况下我们输入邮箱后,点发送验证码邮箱是收不到验证码的,主要原因是邮件服务未配置或配置错误
在这里插入图片描述

  1. 找到本地部署 Dify 的docker目录(如D:\Dify\dify-main\docker),编辑.env文件
  2. 搜索smtp关键字,按以下格式配置邮件参数:
# 邮件类型改为smtp
MAIL_TYPE=smtp
# SMTP服务器地址(QQ邮箱为smtp.qq.com,163邮箱为smtp.163.com)
SMTP_SERVER=smtp.qq.com
# 端口(QQ邮箱465,需开启TLS;163邮箱25或465)
SMTP_PORT=465
# 邮箱用户名(完整邮箱地址)
SMTP_USERNAME=your-email@qq.com
# 授权码(非邮箱登录密码,需在邮箱设置中开启SMTP并获取)
SMTP_PASSWORD=your-smtp-auth-code
# 开启TLS(对应465端口,若用25端口可设为false)
SMTP_USE_TLS=true
# 发件人名称(可选,如no-reply@dify.ai)
MAIL_DEFAULT_SEND_FROM=no-reply@dify.ai
  1. 重启 Dify 服务
cd /path/to/dify/docker
docker compose restart
  1. 验证配置:重启后尝试重置密码,若邮箱能收到验证码,说明配置成功。

官方命令行工具重置(推荐)

这是最直接和安全的方法,尤其适用于通过 Docker Compose 部署的 Dify 环境

  1. ​​确保服务运行​​:首先,使用 docker ps命令确认你的 Dify 容器(通常是 api服务)正在运行
  2. 执行重置命令​​:在服务器上,进入 Dify 目录(包含 docker-compose.yaml文件的目录),然后执行以下命令:
# 注意docker-api-1修改为你的正确容器 名称
docker exec -it docker-api-1 flask reset-password
  1. 按提示操作​​:命令执行后,系统会提示你输入账号(邮箱),新密码、再输一遍新密码即可
Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐