我们一般在部署 n8n 的时候因为都是私人使用,所以不会配置 SMTP 邮件服务器。
这就导致了一旦如果我们忘记密码,或者是之前设置的二因素验证失效了,找回密码功能是不可用的。
这个时候有两个解决思路:
直接写库
改库之前记得备份!
n8n 的所有密码都写在数据库里,我们可以直接通过 TablePlus(连接默认的 SqlLite)或 pgAdmin 4 (连接 PostgreSQL)等数据库管理工具直接连接数据库。
然后在其中找到 user 表,这里面每个用户有个 password 字段。它的密码当然不是以明文方式存储的。所以你可以直接把这个字段替换为以下这一段:
$2y$10$/LDSRRyy6JeJhArBvbO3COudgZWx2ug9tsl2L3x5Vf6PXfgxM8DmC
替换完成后,你就可以回到前台,用 admin
作为密码登录你的账户了。
同理,如果你想去掉二因素验证,只需将 user 表下对应用户的 mfaEnabled 字段从 1 改为 0 即可。
使用 n8n 命令行
这是官方推荐的方法。但我觉得还是第一种方法更简单。
你需要进入 Docker 容器的终端,然后在容器终端中执行这个命令:
n8n user-management:reset
这个命令会删除你的所有用户,让你进入 n8n 时仿佛第一次进入时重设管理员账户密码。但,不会删除你的所有 Workflow。
如果你想删除某个用户的二因素验证,则需要执行这个命令:
n8n mfa:disable [email protected]