You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用connect-mongo 4.6.0存储Express会话,Chrome报‘Unable to parse ciphertext object!’错误

问题:Chrome中使用connect-mongo v4.6.0存储Express会话时出现"Unable to parse ciphertext object!"错误

在Node.js环境中使用connect-mongo v4.6.0连接MongoDB存储Express会话信息时,Chrome(v106.0.5249.121)浏览器提示"Unable to parse ciphertext object!"错误,但Brave和Edge中会话数据可正常加密存储,MongoDB中的记录也显示正常。

当前配置代码

const MongoStore = require('connect-mongo');
const mongoStore = MongoStore.create({
    mongoUrl: urlDBLocale,
    crypto: { // 该参数会导致Chrome中出现"Unable to parse ciphertext object!"错误
        secret: process.env.mdbssecret,
    },
    touchAfter: 24 * 3600
});
mongoStore.on("error", err=>console.log('MongoDB Session Storage error:', err));
const sessionOptions = {
    cookie: {
        httpOnly: true, 
        secure: false, 
        maxAge: 3600000 
    },
    name:  'whatever', 
    saveUninitialized: false,
    secret: process.env.sessionSecret,
    store: mongoStore,
    resave: false
};
app.use(session(sessionOptions));

MongoDB中正常存储的会话记录

> db.sessions.find()
{ "_id" : "tAD7alup3KP_8qzkBUkAQtgplM3QYjO_", "expires" : ISODate("2022-11-03T17:54:03.169Z"), "lastModified" : ISODate("2022-11-03T16:54:03.169Z"), "session" : "MIICkwSCAThtV0dUNGZKcGYrVFlPeURDbDlTT3VqcjdFQWswRURYdm1TQXFTL1RQT3dZVzBmYU5PajRnblU0bDNuZDB3T08xTFhhbHlncnZsWUwrMHZvdWEyUzJOYUd3Wm5pUnYyOUR6SnFhODAwTXFLN3NFWG5PandKdkZmQTlvZUZZRURUVUJaeDRiYWN4T3psbXFWaFFFUlNEZzNjMFNIdnJmTXhYc2xidTkwNlovcXlTaEVGaWppRml5cEFMNlFHS2ViM1A5RElVZi9HNHRrNkVDcFpReVlGaWp1U2ZxbXNRZS9rd0NnclRua2QyYTRSTmxlT29vc1F4WUVvcnFzQzYxanJUVDVUV21laWhHTzdYeUx4VFU2ejZYZlhyNnRHMHJ4WUxQUFg3ZWdUWXYxdGlvK1JrOVVHM3Z3PT0EWHJ5VXFFM3k2MEFab2JEU0orWG9lMjZMM1NEeG5HVUxaQlc1Q001VGtSdHdmZGhLWGlaNmhUVUFicmcwRzUzTk53MGVlMXpkaXRnRlhtS1JwU1k5aTFnPT0EDPUOA18tvmYDuzHydQSBgO4uqYbtOWt3/nWokZk2iHwCV2/L0dTDpVoHEfvZmFLQ3xlEUV4213b8HeyCnAjnz03TAf8f1p3ZEbEu9JqpnsGmM7T6fiN/1O8hOwRzRDwFyJKcT/+PUUTiaDda55FjinqNn9imwrdVl4kMCmkfcxafgaJE/aaj9nznUeJ/eE7SBBCYIePm5C0f9mYS8jJV4MtJBFhKQ3VHZlBYSUFGbEdMUXV5SFpuMnJORnQwUWRGb0ZydHpseHRleWh6QWFwaVNjdVBNcTJ0M0pReEZKdzBQWXg3N255Vit3czdzMjU4ZGJxamxMZDc4dz09" }
{ "_id" : "pUX3QV5yLOEImcckJdUO1jir_tkAFPXF", "expires" : ISODate("2022-11-03T17:56:28.397Z"), "lastModified" : ISODate("2022-11-03T16:56:28.398Z"), "session" : "MIICkwSCAThpL0RGTjJwTXRxcGtVdTBycGNkRVhVajhRRzhqanV2aVhXZjlPQ1pWclhEYkgwTkZGdms0T0EwSGpJSmlrRUJqcWNkMTMzR3dzdGgzUlhza1JtZWdCSGZGUVFvSWRmdXU1T3lXZEJkUC90bEEvcStuTnhnOFNiek96MXRDLzF0Nmx0dlNkaTEvSmx2SlRDMzZHdGdlQXZSKzJTbEZBUjVFaHlaYXhjbklLWkpBcm01b3ZWbWJzMUNFSERPSVZZKzJrU0dLT2JlOGN0aXZRRUZsYTlOcHloZm1JSEZiZk80emdRenRZdVN4WFMwZlVIbnFpMTEvdW1UbkZjRk9NN3IxRWswVjV3RW1mUGFDUTJsZ0NCVWUzMXg4TVFFN1ZGVUt0eDFWWURlbDZWMlRJd2hDMlFRZitBPT0EWHBNKzBrQnZkZkF3dnhIZWxMTUxHNjNVTWZyMVEvME9VaDVJdW03TTJ6aVpGUWFJVE8vRUNaTXlqQ3NKSFFxSmw1ZGZkN1hmUDJLTFFSK2xmeVhPK0JnPT0EDIMy9uY8STWtjjUHuASBgPuj70V3HlFuaXEYk7HNYTGy6dIbrLhGkW5Ra3xTgekdMQeAdmB4xmmTnIu099LCkNeuSiZZvSLrxz6Oj39ZJXB5GTGlBVbpoEFc3Iaf12jPBhuX8KkXtHGV4y+UsJw+qg/BC0lzfAKMpa3iGjdLgo9vwobrN03MyEKRBUHSEyQLBBAS7AfNVrZPfHqmyGyO4g68BFh2cFprY0taekQzZ0Q4Tjd5MEcweHFwQ2dwMTJHb1dsSk04clRURnp5Rmhpc1o1WjlkQ0pyeVBTTVNhUCthS1g1d2hFMDlpbS9veGpHUGhzYkUxYS8xZz09" }

解决建议

1. 移除connect-mongo的双重加密配置

Express Session本身已经通过sessionOptions.secret完成会话数据的签名与加密,connect-mongo的crypto.secret会再次对数据加密,这可能在Chrome中引发解析冲突。直接移除该配置:

const mongoStore = MongoStore.create({
    mongoUrl: urlDBLocale,
    // 移除crypto配置
    touchAfter: 24 * 3600
});

2. 检查Chrome的Cookie相关设置

  • 关闭Chrome的第三方Cookie阻止功能(测试环境临时验证),或者在Cookie配置中添加sameSite: 'lax'(生产环境建议配合secure: true在HTTPS环境下使用):
    cookie: {
        httpOnly: true, 
        secure: process.env.NODE_ENV === 'production', 
        maxAge: 3600000,
        sameSite: 'lax'
    },
    
  • 清除Chrome中当前站点的所有Cookie和缓存,避免旧的损坏会话数据影响测试。

3. 降级connect-mongo版本

如果上述方法无效,可降级到v4.5.0版本(社区反馈该版本无此类Chrome兼容问题),要求Node.js版本为v14.x及以上:

npm uninstall connect-mongo && npm install connect-mongo@4.5.0

验证步骤

修改配置或降级后重启服务,在Chrome中测试会话功能,检查MongoDB中的会话数据是否正常存储,浏览器是否不再抛出"Unable to parse ciphertext object!"错误。

内容的提问来源于stack exchange,提问作者Stefano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 11:55:24