求助:AuthJS Credentials在Azure Nuxt SWA部署后无法正常工作
解决Nuxt AuthJS Credentials Provider在Azure SWA部署后的400错误
问题根源
Azure Static Web Apps(SWA)默认启用内置认证系统,会自动拦截所有认证相关请求,强制使用自身的azureStaticWebApps provider,这和你自定义的AuthJS Credentials Provider冲突,直接导致Login not supported for provider azureStaticWebApps错误。必须完全禁用SWA的内置认证,才能让AuthJS正常工作。
解决方案步骤
1. 配置staticwebapp.config.json禁用SWA内置认证
将以下配置文件放在Nuxt项目的public目录下(SWA会自动读取根目录的该配置),彻底关闭SWA所有内置认证:
{ "routes": [ { "route": "/*", "allowedRoles": ["anonymous"] } ], "auth": { "identityProviders": { "azureActiveDirectory": {}, "facebook": {}, "github": {}, "google": {}, "twitter": {} }, "requireAuthentication": false } }
routes规则设置所有路径允许匿名访问,避免SWA拦截请求identityProviders下所有提供者设为空对象,彻底禁用SWA自带的认证选项requireAuthentication设为false,关闭全局强制认证要求
2. 验证环境变量配置
- AUTH_ORIGIN:必须是你的Azure SWA完整URL(例如
https://your-app-name.azurestaticapps.net),不要以斜杠结尾 - AUTH_SECRET:用
openssl rand -hex 32生成安全随机字符串,确保在Azure SWA的「配置->环境变量」中正确设置,本地和部署环境密钥需一致 - 检查你的
server/api/auth/[...].ts文件,确保只启用了Credentials Provider,未额外引入azureStaticWebApps相关配置
3. 部署后验证
- 部署完成后,访问
https://your-app-name.azurestaticapps.net/staticwebapp.config.json,确认配置内容正确加载 - 打开Azure SWA的「监控->日志流」,查看是否还有认证拦截相关日志,确保AuthJS的
/api/auth/*路径能正常访问
4. 额外排查
如果问题仍存在,检查:
- Nuxt构建时是否将
public目录内容正确复制到输出目录 - SWA的路由规则是否覆盖了AuthJS的回调路径
- 浏览器控制台是否有跨域或请求拦截的错误提示
内容的提问来源于stack exchange,提问作者Iwan de Jong
相关产品推荐
相关产品推荐

