部署在Firebase Hosting的Nuxt 3应用Firebase Auth登录报错auth/login-blocked
解决Nuxt3 + Firebase Auth部署后auth/login-blocked及__session 404问题
针对你部署到Firebase Hosting后出现的登录错误和__session端点404问题,可按以下步骤排查修复:
检查Firebase Hosting重写规则
确保firebase.json中配置了正确的重写规则,将/api/**请求转发到Nuxt生成的云函数,否则服务器端会话端点无法被正确处理。示例配置:{ "hosting": { "public": ".output/public", "cleanUrls": true, "rewrites": [ { "source": "/api/**", "function": "server" }, { "source": "**", "destination": "/index.html" } ] } }注意
server是Nuxt部署时默认生成的云函数名称,需确保该函数已成功部署。确认Nuxt VueFire的会话配置
在nuxt.config.ts中,需明确开启Firebase Auth的会话Cookie支持,保证服务器端能处理会话:export default defineNuxtConfig({ vuefire: { auth: { enabled: true, sessionCookie: true, sessionCookieName: '__session' }, // 其他Firebase相关配置 } })验证云函数部署状态
登录Firebase控制台,进入「云函数」页面,检查server函数是否存在且状态为正常运行。若部署过程中函数构建失败,会直接导致/api相关端点无法访问。检查Firebase Auth会话管理配置
在Firebase控制台的「Authentication」→「设置」→「会话管理」中,确认会话Cookie的域名与部署网站的域名一致,生产环境建议开启HttpOnly和Secure标志,避免会话安全问题。清除浏览器缓存与Cookie
浏览器缓存的旧会话数据可能引发冲突,尝试清除当前网站的缓存和Cookie后,重新测试登录功能。确认部署流程正确性
确保部署前已执行npm run build生成完整的.output目录,再通过firebase deploy完成部署,避免因构建不完整导致服务器端逻辑缺失。
内容的提问来源于stack exchange,提问作者redshift
相关产品推荐
相关产品推荐

