MedusaJS Dashboard登录出现401错误,部署于Koyeb与Vercel
Medusa Dashboard登录后重定向回登录页(401错误)解决方法
针对你遇到的问题,可按以下步骤排查解决:
核对CORS配置
确保Koyeb上Medusa后端的ADMIN_CORS环境变量准确包含Dashboard的完整域名(https://shoppica.vercel.app),注意域名后不要加斜杠,多个域名用逗号分隔且无空格。替换示例密钥为随机强密钥
后端的JWT_SECRET和COOKIE_SECRET不能使用A_RANDOM_JWT_SECRET这类示例字符串,需生成足够复杂的随机密钥。可通过命令行生成:openssl rand -hex 32生成后替换Koyeb上对应的环境变量,重新部署后端服务。
调整Cookie跨域配置
在Medusa后端的medusa-config.js中添加或修改Cookie配置,适配跨域场景:module.exports = { projectConfig: { // ...其他项目配置 cookie_options: { same_site: "Lax", // 若跨域限制严格可设为"None",但必须同时开启secure secure: true, // HTTPS环境必须开启,否则浏览器会拒绝Cookie http_only: true, // 保持默认开启,提升安全性 }, }, // ...其他配置 };修改后重新部署后端服务。
验证后端地址可用性
确认Vercel上Dashboard的MEDUSA_ADMIN_BACKEND_URL(https://medusa-service-pancham.koyeb.app)可正常访问,测试访问https://medusa-service-pancham.koyeb.app/admin/health,应返回200状态码。清除浏览器缓存与Cookie
手动清除浏览器中对应域名的Cookie,或使用隐私窗口登录测试,避免旧缓存导致的认证冲突。检查登录请求响应头
打开浏览器开发者工具的「网络」面板,触发登录请求后,查看响应头中的Set-Cookie字段:- 确认该字段存在,且包含正确的
domain、secure、sameSite属性 - 若
Set-Cookie未出现,说明后端Cookie配置存在问题,需重新核对密钥和Cookie参数
- 确认该字段存在,且包含正确的
内容的提问来源于stack exchange,提问作者Pancham Barman
相关产品推荐
相关产品推荐

