如何修复Quart框架中Discord出现登录循环的问题
Discord Dashboard Heroku 登录循环故障排查方案
出现discord.authorized返回False导致的登录循环,可按以下优先级排查:
- 替换内存Session存储
本地测试默认使用的内存Session无法在Heroku环境正常工作:Heroku dyno为临时运行环境,休眠、重启、多实例部署都会清空内存数据,授权回调写入的Session数据会直接丢失。请将Session存储替换为Redis、PostgreSQL等外置持久化存储。 - 核对OAuth回调地址
确保两处回调地址完全匹配:- Discord开发者后台OAuth2配置页的重定向地址列表,已添加Heroku应用的完整回调地址(需带https前缀和完整回调路径,如
https://xxx.herokuapp.com/callback) - Heroku应用配置变量中的
REDIRECT_URI和上述地址完全一致,不要残留本地localhost测试地址
- Discord开发者后台OAuth2配置页的重定向地址列表,已添加Heroku应用的完整回调地址(需带https前缀和完整回调路径,如
- 校验Cookie与密钥配置
- 必须在Heroku配置变量中设置固定的
SECRET_KEY,不要使用代码中写死的测试密钥,也不要每次部署自动生成随机密钥,否则Session解密失败会丢失授权状态 - 部署到https的Heroku环境后,需在框架配置中开启
SESSION_COOKIE_SECURE = True、SESSION_COOKIE_SAMESITE = 'Lax',避免授权Cookie被浏览器拦截无法写入
- 必须在Heroku配置变量中设置固定的
- 核对Discord授权参数
确认Heroku配置变量中的DISCORD_CLIENT_ID、DISCORD_CLIENT_SECRET填写正确,无多余空格、拼写错误,和Discord开发者后台的数值完全一致。
内容的提问来源于stack exchange,提问作者Retox
相关产品推荐
相关产品推荐

