一次登录 500:最后查到的是环境变量
登录页正常,请求却返回 500
这次部署时,管理端页面能打开,API 健康检查也正常,只有登录请求返回 500。第一步是看 API 日志,而不是继续反复试密码:
docker compose -f deploy/docker-compose.yml logs --tail=80 api
异常落在 bcrypt.checkpw,提示 ValueError: Invalid salt。这说明校验过程中读到的哈希格式有问题,还没有走到正常的密码比对结果。
哈希里的美元符号
bcrypt 哈希包含 $。这次配置修正是在 .env 中给完整值加上单引号,保留字面内容。生成工具本来就会输出带引号的整行配置,替换时应该保留它,而不是只复制中间一段。
修改文件后还要让容器读取
改完配置后重新创建 API 容器,让新的环境变量生效:
docker compose -f deploy/docker-compose.yml up -d --force-recreate api
下次怎么少绕路
排查时可以只检查哈希长度和格式,不把哈希、密码或整份环境文件打印出来。健康检查通过只说明接口还在响应,不能说明每条业务路径都正常。这次登录问题,就需要结合具体请求的异常日志才能找到原因。