SvelteKit中.env长哈希密码在+server.ts读取为空问题
SvelteKit中.env读取哈希密码为空的解决方法
首先明确:.env文件里的字符串没有长度限制,你的问题出在给HASHED_PASSWORD的值加了双引号。
在.env文件的解析规则里,带双引号的变量值会被特殊处理,而bcrypt哈希字符串里包含多个$符号,和引号结合后会触发解析异常,导致最终读取到空字符串。而短字符串(比如foobar)因为没有特殊字符,即使加引号也能正常解析,才让你误以为是长度问题。
解决步骤:
- 修改.env文件,去掉
HASHED_PASSWORD值的双引号:
ADMIN=adminusername HASHED_PASSWORD=$2b$10$4bMzfiH59woVPnlijd21QeU9NYzaCIF2g0zypuNjxDU71m0MM8Fa2 JWT_SECRET=BREUEnpzw9Jh79
- 保持原有的导入方式不变:
import { ADMIN, HASHED_PASSWORD, JWT_SECRET } from '$env/static/private';
这样修改后,就能正常读取完整的哈希密码字符串了。
内容的提问来源于stack exchange,提问作者GMN
相关产品推荐
相关产品推荐

