SvelteKit中AuthJS集成Discord OAuth2时client_id undefined报错排查
问题排查与解决建议
明确URL中client_id的含义
URL里的client_id是你在Discord开发者平台创建应用时获取的客户端ID,并非Discord返回的用户ID。这里显示undefined,说明AuthJS未读取到你配置的Discord客户端ID。
核心问题:Provider配置参数拼写错误
查看你+hooks.server.js中的代码,DiscordProvider的参数名存在拼写错误:你写的是cliendId,正确参数名应为clientId(cliend需改为client,字母顺序错误)。
错误代码片段:
DiscordProvider({cliendId :"123", clientSecret :"....8cea0" }),
修正后代码:
DiscordProvider({clientId :"123", clientSecret :"....8cea0" }),
你提到Google Provider可正常工作,大概率是Google的参数拼写正确,而Discord的参数错误直接导致了client_id=undefined的问题。
CSP错误说明
Content Security Policy错误是因Discord返回400错误页面,该页面内联样式违反了你页面的CSP规则。只要解决client_id的问题,正常跳转至Discord授权页面后,该错误会自动消失,无需额外调整CSP。
额外检查项
- 确认Discord开发者平台中应用的重定向URI与代码中的
redirect_uri完全一致(即http://localhost:5173/auth/callback/discord) - 确保Discord应用已启用
identify和email权限(匹配请求中的scope参数) - 核对客户端ID和客户端Secret为Discord应用的正确值,无复制错误
内容的提问来源于stack exchange,提问作者Marco
相关产品推荐
相关产品推荐

