跟随NextJS教程使用Supabase时遇用户认证失败问题求助
解决Supabase + Next.js 「Could not authenticate user」及getaddrinfo ENOTFOUND错误
我按照Supabase官方NextJS快速入门教程创建项目,已将.env.example重命名为.env.local并填入正确的Supabase项目凭证,甚至更换过新的Supabase项目,但仍触发「Could not authenticate user」错误,终端输出以下报错:
[TypeError: fetch failed] { cause: [Error: getaddrinfo ENOTFOUND trymisvidpkgtvdfhdnq.supabase.co] { errno: -3008, code: 'ENOTFOUND', syscall: 'getaddrinfo', hostname: publicUrl }

环境:Safari 17.2.1、MacOS M2 Sonoma
排查与解决步骤:
- 检查域名解析问题
这个报错的核心是系统无法解析Supabase的项目域名(trymisvidpkgtvdfhdnq.supabase.co)。在终端执行nslookup trymisvidpkgtvdfhdnq.supabase.co,如果返回无法找到域名的结果,说明是DNS解析故障。
解决:切换到公共DNS服务器,比如Cloudflare的1.1.1.1或谷歌的8.8.8.8。操作路径:系统设置 → 网络 → 选中当前网络 → 详情 → DNS → 添加新DNS地址并移除旧地址。 - 核对.env.local配置
仔细检查.env.local里的NEXT_PUBLIC_SUPABASE_URL,确保格式正确(https://<你的项目ID>.supabase.co),没有拼写错误、多余空格或遗漏https://前缀。 - 重启服务与清空缓存
修改环境变量后必须重启Next.js开发服务器(按Ctrl+C终止后重新执行npm run dev);同时清空Safari缓存(快捷键Cmd+Opt+E,或通过开发菜单选择清空缓存),避免旧配置被缓存。 - 检查防火墙/代理
如果开启了系统防火墙或代理工具,可能拦截了Supabase的请求。尝试临时关闭代理、暂停防火墙,再重新测试。 - 确认Supabase项目状态
登录Supabase控制台,确认你的项目处于活跃状态,没有被暂停或删除;可以在控制台的API页面测试接口,验证服务是否正常。
内容的提问来源于stack exchange,提问作者idevelopapps
相关产品推荐
相关产品推荐

