Cloud Run部署Laravel应用自定义域名无法登录认证求助
解决Cloud Run上Laravel自定义域名无法登录的问题
一、完成Cloud Run自定义域名的完整配置
仅添加DNS的CNAME记录不足以让自定义域名正常工作,必须在Google Cloud控制台完成域名映射与验证:
- 进入Cloud Run服务详情页,切换到「自定义域名」标签
- 点击「添加映射」,输入
devel.alberane.com,按照指引完成域名归属验证(通常是添加指定TXT记录到你的DNS服务商) - 等待Google自动配置SSL证书(耗时数分钟至数小时),确保自定义域名可通过HTTPS访问且浏览器显示证书有效
二、调整Laravel的会话与环境配置
修改项目根目录的.env文件,配置以下关键项:
APP_URL=https://devel.alberane.com SESSION_DRIVER=database # 或file,根据你的测试需求选择 SESSION_DOMAIN=.alberane.com # 开头的点适配所有子域名;若仅需当前子域名,可设为devel.alberane.com SESSION_SECURE=true # *必须开启*,因为自定义域名使用HTTPS,浏览器仅会保存带Secure属性的Cookie SESSION_SAMESITE=Lax # 普通应用使用Lax即可,若存在跨域登录需求可设为None(需配合SESSION_SECURE=true)
三、清除Laravel配置缓存
修改配置后,必须执行以下命令清除缓存,确保新配置生效:
php artisan config:cache php artisan cache:clear
如果是Cloud Run部署,建议将这两个命令加入部署脚本(如Dockerfile的启动命令),避免部署后残留旧配置缓存。
四、验证Cookie状态
用浏览器开发者工具排查Cookie是否正常生成:
- 访问
https://devel.alberane.com,打开「开发者工具」→「Application」→「Cookies」,检查当前域名下是否存在laravel_session(或自定义会话Cookie名称) - 查看Cookie属性:确认
Secure为true、Domain匹配设置的SESSION_DOMAIN、SameSite符合配置 - 若Cookie未生成,查看「Console」标签是否有Cookie被拦截的错误提示(如SameSite不兼容、Secure未开启等)
额外排查方向
- 检查登录请求的响应头:在「Network」标签中查看登录接口的响应是否包含
Set-Cookie头部 - 确认Cloud Run服务未设置限制自定义域名的访问控制策略
内容的提问来源于stack exchange,提问作者alberane
相关产品推荐
相关产品推荐

