一次登录 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

下次怎么少绕路

排查时可以只检查哈希长度和格式,不把哈希、密码或整份环境文件打印出来。健康检查通过只说明接口还在响应,不能说明每条业务路径都正常。这次登录问题,就需要结合具体请求的异常日志才能找到原因。